ajax返回一个数组的1个元素(来自mysql数据库的数据)而不是所有行,请帮助:
php代码:
<?php
header("Content-type:application/json");
$srchString = trim($_POST['q']);
$sql = mysqli_query($connect,"SELECT * FROM dbname.tblname
WHERE fieldname LIKE '%$srchString%' LIMIT 7");
confirmQuery($sql);
if(mysqli_num_rows($sql)>=1){
$mem = mysqli_fetch_array($sql,MYSQLI_ASSOC);
echo json_encode($mem);
}
?>
JS:
$("#q").on("keyup",function(){
var q = $(this).val();
$.ajax({
type: "POST",
dataType:"json",
url:"process.php",
cache:false,
data:"q="+ q,
success:function(data){
$.each( data, function( key, value ) {
console.log(value.tel);
});
}
});
});
答案 0 :(得分:2)
您必须迭代所有获取的行并将它们放入数组中。
之后,您可以调用json_encode
来获取JSON数组。
请替换
if(mysqli_num_rows($sql)>=1){
$mem = mysqli_fetch_array($sql,MYSQLI_ASSOC);
echo json_encode($mem);
}
与
if(mysqli_num_rows($sql)>=1) {
$rows = array();
while($row = mysqli_fetch_array($sql,MYSQLI_ASSOC)) {
$rows[] = $row;
}
echo json_encode($rows);
}
答案 1 :(得分:1)
使用mysqli_fetch_all()
if(mysqli_num_rows($sql)>=1){
$mem = mysqli_fetch_all($sql,MYSQLI_ASSOC);
echo json_encode($mem);
}