我用html和php / mysql创建了一个简单的下拉列表
<select name="location_id" id="location_id" class="form-control">
<?php
$sql = "SELECT * FROM locations";
$result = mysqli_query($conn, $sql);
while($row=mysqli_fetch_assoc($result)){ ?>
<option value="<?php echo $row['location_id'];?>">
<?php echo $row['location_name'];?></option>
<?php } ?>
</select>
在从另一页插入新记录之前,它一直很好。我需要刷新页面以在下拉列表中获取新插入的记录。
在我当前的应用程序中,每当用户单击下拉列表时,都需要刷新下拉选项,而不刷新整个页面。这些选项应从mysql数据库中实时获取。
我已经找到了解决方案,但找不到相似的解决方案。
答案 0 :(得分:3)
要仅刷新页面的一部分,您需要使用JavaScript(具体来说是AJAX)。
Ajax允许您发送HTTP请求和更新页面元素,而无需重新加载整个页面。
您可以尝试这样的事情
<script>
function refresh_items() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("location_id").innerHTML =
this.responseText;
}
};
xhttp.open("GET", "refresh_list.php", true);
xhttp.send();
}
</script>
<select name="location_id" id="location_id" class="form-control" onclick="refresh_items();">
</select>
现在您已经制作了客户端脚本,希望您在refresh_list.php
上使用服务器端PHP,使其看起来像这样
<?php
//all your SQL settings and stuff here
$sql = "SELECT * FROM locations";
$result = mysqli_query($conn, $sql);
while($row=mysqli_fetch_assoc($result)){ ?>
<option value="<?php echo $row['location_id'];?>">
<?php echo $row['location_name'];?></option>
<?php } ?>