gpt4 book ai didi

javascript - PHP-jquery-ajax动态依赖选择-难度

转载 作者:行者123 更新时间:2023-12-03 00:08:53 33 4
gpt4 key购买 nike

我正在编写一个带有动态相关选择的简单表单。有两个文件。一个是一个 php 文件,里面有 html、javascript 和 php,第二个是一个 php 文件,用于获取第二次选择的数据并以 json 格式发回。在第一个(也是主)文件中,我有带有两个选择字段的表单。第一个字段用于省份,第二个字段用于城镇。数据位于 MySQL 数据库中,有两个表,table_provinces 代表省份(103 行),table_towns 代表城镇(8000 行)。通常像往常一样连接到数据库,并使用 javascript 链接链接到 jquery。首先,我获取第一个选择字段的省份选项,使用 php 从数据库的 table_provinces 获取值。然后使用 javascript“on('change',function(){ 这里我使用 ajax...}) ” 我使用 ajax 将选定的值传递到一个 php 文件,该文件可能会从 table_towns 中提取城镇并返回(以 json 格式)值以填充第二个选择字段。 Javascript 正确地从第一个选择字段中获取所选值(我使用警报来了解它),但没有发生更多事情。这就是代码。

链接到 jquery:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

HTML 首先选择字段:

<form method="post" action="usemychoice.php">
<select id="province" name="province" color="white">
<option value="" selected>Select a province</option>

这是我填充第一个选择字段的方式:

 

<?php

$sql = "SELECT * FROM table_provinces";

$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {

while($row = mysqli_fetch_assoc($result)) {

echo "<option value='".$row['prov']."'>".$row['extended_province']."</option>";

}

} else {

echo "Error: ..........";
}

?>

在使用/select 关闭该字段后,我有以下代码来获取用于填充第二个选择字段的城镇名称的值:

<script type="text/javascript">
$(document).ready(function(){
$('#province').on('change',function(){
var provinceID = $(this).val();
if(provinceID){
window.alert("ok you've chosen the province "+provinceID);
$.ajax({
type:'POST',
url:'get_towns.php',
data: 'prov='+provinceID,
success:function(html){
$('#town').html(html);
}
});
}else{
$('#town').html('<option value="">Please select the province first</option>');
}
});
});
</script>

这是 get_town.php 代码:

<?php 


//*****after a require to the connection db routine"


if(!empty($_POST["prov"])) {

$sql = "SELECT * FROM table_towns WHERE prov LIKE '%" .$_POST['prov']."%'";

$result = mysqli_query($conn, $sql);

$json = [];

if (mysqli_num_rows($result) > 0) {

while($row = mysqli_fetch_assoc($result)) {

$json[$row['prov']] = $row['town'];

} else {

echo "Error: .................";

}

echo json_encode($json);

}

?>

最后我有 html 代码:

<select id="town" name="town" color="white">
<option value="" selected>Select province first</option>

最终,代码出现了问题,因为我没有从 get_town.php 返回任何数据来填充第二个选择字段,而且因为我没有看到 window.alert,所以我已经放在那里检查正在进行的执行(您在此处发布的代码中看不到它),似乎没有执行。有什么帮助吗?

最佳答案

 url:'get_towns.php',

get_town.php 不是没有复数吗?

关于javascript - PHP-jquery-ajax动态依赖选择-难度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54841414/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com