[英]how to get results of multiple queries through ajax
我有一個輸入字段,可根據輸入字段值的值過濾數據。 我正在使用ajax調用在運行時過濾數據。 但是問題是我正在使用多個查詢和foreach循環來獲取所需的結果,就像我正在獲取一個人的數據一樣:姓名,電子郵件,電話,部門。 一個人在多個部門工作,因此我正在使用foreach循環來獲取其所有部門以及他的姓名,電子郵件和電話。
當我輸出數據時,第一人稱詳細信息正確但在第二人稱中意味着第二行部門列中還顯示了第一人稱部門,而第三人稱則顯示了第二人稱部門等。 如何顯示一個人的正確細節?
這是我的代碼:
<script>
$(document).ready(function() {
$("#cmp_name").keyup(function(){
$.ajax({
'url':"filter.php",
'data':{name:$("#cmp_name").val()},
'method':'GET',
'success':function(name){
//alert(data);
$("#datas").html(name);
}
})
});
});
</script>
<input type="text" placeholder="Name" name="cmp_name" id="cmp_name">
這是我的filter.php文件:
<?php
if(isset($_GET['name'])){
$name = $_GET['name'];
$dpt = "";
$ret = "";
$query = mysql_query("select id,name,phone,country_id,departments from persons where name like '%$name%'");
while($data = mysql_fetch_assoc($query)){
$name = $data['name'];
$phone = $data['phone'];
$country_id = $data['country_id'];
$queryr= mysql_query("select country from countries where country_id = $country_id'");
$$country = mysql_fetch_array($queryr);
$country_name = $country['country'];
$depart = $data['departments'];
$department=explode(",",$depart);
foreach($department as $departments){
$depart_fetch = mysql_query("select department_name from departments where id='$departments'");
$fetch1 = mysql_fetch_array($depart_fetch);
$depart_list = $fetch1['description'];
$dpt=$dpt."<div> ".$depart_list." </div>";
}
$ret=$ret."<tr><td> ".$name." </td><td> ".$phone." </td><td> ".$country_name." </td><td> ".$dpt."</td></tr>";
}
echo $ret;
}
?>
這行似乎是錯誤的: $dpt=$dpt."<div> ".$cns." </div>";
。 我看不到$cns
來源。 我相信應該是: $dpt="<div> ".$depart_list." </div>";
這消除了$dpt
中部門的重復。
您需要寫$dpt = "";
就在foreach($department as $departments){
。 否則,它只會在每個循環中不斷添加到列表中,而不是為每個人創建新列表。
這將解決您的直接問題,但是,您還應該強烈注意我上面關於過時的數據訪問方法和損壞的數據庫設計所發表的意見,並打算在將代碼投入生產使用之前在不久的將來修復這些問題。 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.