【发布时间】:2021-09-29 21:18:41
【问题描述】:
我正在尝试使用 PHP+MySQL+Ajax 在选择中动态加载选项,但我不知道该怎么做
目前我在 2 个表单中有 2 个选择,我需要发送 2 次表单,因此页面将加载 2 次。 我想使用 ajax 改进我的代码,这样我的页面会加载得更快并且更容易使用。
- 选择 1 有一个国家/地区列表
- 选择 2 包含选择 1 中所选国家/地区的城市列表
选择城市后,屏幕上会显示该城市的具体信息。
表格 1
<?php include_once "conn.php"; ?>
<!-- Form 1 -->
<form action="" method="post">
<select required id="Countries" name="Countries">
<?php
$sql = "SELECT distinct Country FROM cities order by 1 asc";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo '<option value="' . $row["Country"] . '">' . $row["Country"] . '</option>';
}
} else {
echo "0 results";
}
?>
</select>
<input type="submit" id="LoadCities" name="LoadCities" value="Load Cities" />
</form>
表格2
<!-- Store select 1 value in variable -->
<?php
if (isset($_POST['Countries'])) {
$Countries = $_POST['Countries'];
}
?>
<!-- Form 1 -->
<form action="" method="post">
<select required id="Cities" name="Cities">
<?php
$sql = 'SELECT * FROM cities where country="' . $Countries . '"';
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo '<option value="' . $row["City"] . '">' . $row["City"] . '</option>';
}
} else {
echo "0 results";
}
?>
</select>
<input type="submit" id="ShowInfo" name="ShowInfo" value="ShowInfo" />
</form>
在屏幕上显示城市信息:
<!-- Store select 2 value in variable and print selected options in screen-->
<?php
if (isset($_POST['Cities'])) {
$City = $_POST['Cities'];
$sql = 'SELECT * FROM cities where City="' . $City . '"';
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo '<p>Country: ' . $row["Country"] . '</p>';
echo '<p>City: ' . $row["City"] . '</p>';
}
} else {
echo "0 results";
}
}
?>
【问题讨论】:
-
谢谢你的回答,肯定会看一下,并将更改我的代码以使用准备好的语句。
-
Form 1 和 Form 2 看起来很相似;做一个通用函数。