Я пытался получить список штатов, городов и счет из базы данных и отобразить их, как показано ниже. Нажатие кнопки «больше» расширит остальные города в каждом штате. К сожалению, все штаты, их города и графы были в одном столбце, и я не могу отделить штаты друг от друга. Я не могу разделить штаты с их конкретными городами на отдельные колонки. Любая помощь с благодарностью.
Alaska(46)
Anchorage(22)
Eagle River(2)
Elmendorf Afb(1)
Fairbanks(7)
Juneau(4)
More...
После нажатия на ссылку:
Alaska(46)
Anchorage(22)
Eagle River(2)
Elmendorf Afb(1)
Fairbanks(7)
Juneau(4)
Ketchikan(1)
Kodiak(1)
Alabama(54) <-- next state loaded in output, I want this separate
Auburn(1)
Bessemer(1)
Birmingham(52)
Less...
Вот мой запрос:
$query = "
SELECT
stateAbv,
stateName,
'' AS cityName,
count(*) AS state_count
from
my_data
GROUP BY stateAbv, stateName
union
SELECT
stateAbv,
stateName,
city AS cityName,
COUNT(*) AS city_count
FROM
my_data
GROUP BY stateAbv, stateName,
city
ORDER BY stateAbv,
cityName asc
";
$sqlResult = mysqli_query($con, $query);
$i = 0;
while ($row = mysqli_fetch_array($sqlResult)) {
if ($i++ == 6) break;
if ($row['cityName']) {
echo $row['cityName'] . "(" . $row['state_count'] . ")" . "<br/>";
} else {
echo $row['stateName'] . "(" . $row['state_count'] . ")" . "<br/>";
}
}
echo "<a class='more-detail' style='cursor: pointer; font-color:#0000ff;'>More...</a>";
echo "<div class='detail-section' style='display: none;'>";
while ($row = mysqli_fetch_array($sqlResult)) {
if ($i++ > 6) {
if ($row['cityName']) {
echo $row['cityName'] . "(" . $row['state_count'] . ")" . "<br/>";
} else {
echo $row['stateName'] . "(" . $row['state_count'] . ")" . "<br/>";
}
}
}
echo "<a class='less-detail' style='cursor: pointer; font-color:#0000ff;'>Less...</a>";
echo "</div>";
?>
Вот мой JS, чтобы развернуть / свернуть список:
<script>
$(document).ready(function(){
$(".more-detail").click(function(){
$(".detail-section").css("display", "block");
$(".more-detail").css("display", "none");
});
$(".less-detail").click(function(){
$(".detail-section").css("display", "none");
$(".more-detail").css("display", "block");
});
});
</script>