在网络表单中有两个下拉列表。第二个列表项应根据在第一个下拉列表中选择的值动态更改。
这就是我尝试这样做的方法:
的index.php:
...
n
...
<script>
function getClient(val) {
$.ajax({
type: "POST",
url: "get_contacts.php",
data:'client_id='+val,
success: function(data){
$("#contacts-list").html(data);
}
});
}
</script>
get_contacts.php
<div class="form-group">
<label for="mto_client" class="col-sm-2 control-label">MTO Client</label>
<div class="col-sm-10">
<select name="mto_client" id="clients_list" onChange="getClient(this.value)">
<option value="">Select a Client</option>
<?php
do {
?>
<option value="<?php echo $row_RSClients['id_client']?>" ><?php echo $row_RSClients['client_name']?></option>
<?php
} while ($row_RSClients = mysql_fetch_assoc($RSClients));
?>
</select>
</div>
</div>
<div class="form-group">
<label for="mto_client_contact" class="col-sm-2 control-label">MTO Client Contact</label>
<div class="col-sm-10">
<select name="state" id="contacts-list">
<option value="">Select Client Contact</option>
</select>
</div>
</div>
表tb_clients_contact上有符合条件的对象,但第二个下拉列表没有显示任何对象。
欢迎任何帮助。
答案 0 :(得分:1)
而不是
$("#contacts-list").html(data);
应该是
$('#contacts-list').empty().append(data);
empty()
将首先清除contacts-list
选择字段中的选项,然后append()
将插入AJAX结果中的选项。
您还可以查看控制台日志中的错误。如果您使用的是谷歌浏览器,请点击F12
以显示控制台日志。