空查询结果
问题描述:
在Web窗体中有两个下拉列表。第二个列表项应根据第一个下拉列表中选定的值动态更改。空查询结果
这就是为什么我试图做到这一点:
的index.php:
...
<script>
function getClient(val) {
$.ajax({
type: "POST",
url: "get_contacts.php",
data:'client_id='+val,
success: function(data){
$("#contacts-list").html(data);
}
});
}
</script>
...
<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>
get_contacts .php
<?php
require_once("dbcontroller.php");
$db_handle = new DBController();
if(!empty($_POST["client_id"])) {
$query ="SELECT * FROM tb_client_contacts WHERE contact_client_id = '" . $_POST["client_id"] . "'";
$results = $db_handle->runQuery($query);
?>
<option value="">Select Client Contact</option>
<?php
foreach($results as $state) {
?>
<option value="<?php echo $state["id_client_contact"]; ?>"><?php echo $state["contact_name"]; ?></option>
<?php
}
}
?>
表tb_clients_contact上有满足条件的对象,但第二个下拉列表不显示任何对象。
任何帮助,欢迎。
答
而不是
$("#contacts-list").html(data);
应该
$('#contacts-list').empty().append(data);
empty()
将清除第一contacts-list
选择字段中的选项,然后append()
将插入您的AJAX的结果的选项。
您还可以查看控制台日志以查找错误。如果您使用的是谷歌浏览器,请点击F12
以显示控制台日志。
+0
谢谢,它工作....很好 – mvasco
首先看看SQL注入。这是一个你有id_client_contact和contact_client_id的错字吗? – JRD
感谢@JRD,没有这两个字段,id_client_contact是来自tb_client_contacts的主索引字段,contact_client_id是来自tb_client_contacts的另一个字段,其中tb_client_contacts存储来自联系人的客户端。 – mvasco
检查错误报告(以及您的查询)的错误并查看您的控制台。 –