Я разработал сетку, используя HTML и CSS. Когда пользователь нажимает на сетку, я показываю другую сетку, используя PHP и AJAX.
Мой код:
$(document).ready(function() {
$(document).on('click', '.showme', function() {
var id = $(this).attr("id");
var num = $(this).attr("class");
var poststr = "request=" + num + "&moreinfo=" + id;
$.ajax({enter code here
url: "http://kiranasaman.com/mobiledesign/testme.php",
cache: 0,
data: poststr,
success: function(result) {
document.getElementById("grid").innerHTML = result;
}
});
});
});
main {
display: block;
box-sizing: border-box;
width: 90%;
margin: 1em auto;
padding: 1em 2em;
color: #000;
background-color: rgba(204, 204, 204, .7);
border: .07em solid rgba(0, 0, 0, .5);
border-radius: .5em;
}
button {
text-align: center;
font-size: 100%;
border-radius: 1em;
border: .1em solid #333;
padding: 1em;
width: 8em;
margin: .25em;
width: 23%;
}
button strong {
display: block;
box-sizing: border-box;
line-height: 1.35;
width: 1.5em;
height: 1.5em;
text-align: center;
font-size: 200%;
background-color: #000;
color: #fff;
border-radius: 50%;
margin: 0 auto;
border: .1em solid #fff;
}
button:hover,
button:focus {
background-color: #060;
box-shadow: 0 0 1em rgba(0, 0, 0, .5);
color: #fff;
outline: none;
}
.gridmine {
display: -ms-grid;
-ms-grid-columns: auto 1fr;
-ms-grid-rows: auto 1fr auto;
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: auto minmax(min-content, 1fr) auto;
}
.title {
-ms-grid-column: 1;
-ms-grid-row: 1;
grid-column: 1;
grid-row: 1;
}
.title1 {
ms-grid-column: 2;
-ms-grid-row: 1;
grid-column: 2;
grid-row: 1;
}
.title2 {
ms-grid-column: 3;
-ms-grid-row: 1;
grid-column: 3;
grid-row: 1;
}
.gridmine button {
width: 100%;
height: 100%;
margin: 0;
}
.gridmine button:hover {
background-color: #73090D;
}
.gridmine .soman {
height: 200px;
font-size: 24px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<main>
<h2 style="font-size:28px;">Shop by Category</h2>
<div class="gridmine" id="grid">
<div class="soman title">
<button class='request_1 showme' id='rating_1' style="background: linear-gradient(to bottom, #cc99ff 0%, #ff99cc 100%);">
<h3> Rice, Grains & Flours</h3>
</button>
</div>
<div class="soman title1">
<button style="background: linear-gradient(to right, #ff9a9e 0%, #fad0c4 100%);">
<h3>Dals, Pulses & Seeds</h3>
</button>
</div>
<div class="soman title2">
<button style="background: linear-gradient(to right, #a1c4fd 0%, #c2e9fb 100%);">
<h3>Sugar & Salts</h3>
</button>
</div>
</div>
</main>
Когда пользователь щелкает по полю, я получаю данные, используя AJAX и PHP, и показываю их, заменяя ту же сетку.
PHP код:
<?php
$request_id = preg_replace("/[^0-9]/","",$_REQUEST['request']);
$request_moreinfo = preg_replace("/[^0-9]/","",$_REQUEST['moreinfo']);
if($request_id=="1")
{
echo "<div id='grids' class='gridmine'>
<div class='soman titles'>
<button class='request_2 seeme' id='rating_2' style='background: linear-gradient(to bottom, #cc99ff 0%, #ff99cc 100%);'>
<h3> Rice</h3>
</button>
</div>
<div class='soman title1s'>
<button style='background: linear-gradient(to right, #ff9a9e 0%, #fad0c4 100%);'>
<h3>Grains</h3>
</button>
</div>
<div class='soman title2s'>
<button style='background: linear-gradient(to right, #a1c4fd 0%, #c2e9fb 100%);'>
<h3>Flours</h3>
</button>
</div>
</div>";
}
?>
Я использую один и тот же класс для всего в обеих сетках. Первая сетка отображается правильно, но вторая сетка, полученная из запроса AJAX PHP, не отображается должным образом, как первая, ее ширина меньше.
Кто-нибудь, пожалуйста, скажите мне что здесь может быть не так? Заранее спасибо.