ajax返回的是一个数组的一个元素(来自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);
});
}
});
});发布于 2016-09-07 13:54:42
您必须迭代所有获取的行,并将它们放入一个数组中。之后,您可以调用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);
}发布于 2016-09-07 13:57:14
使用mysqli_fetch_all()
if(mysqli_num_rows($sql)>=1){
$mem = mysqli_fetch_all($sql,MYSQLI_ASSOC);
echo json_encode($mem);
}https://stackoverflow.com/questions/39362057
复制相似问题