首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ajax未响应所有阵列数据

问ajax未响应所有阵列数据
EN

Stack Overflow用户
提问于 2016-09-07 13:51:14
回答 2查看 40关注 0票数 1

ajax返回的是一个数组的一个元素(来自mysql数据库的数据),而不是所有的行,请帮助:

php代码:

代码语言:javascript
复制
<?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:

代码语言:javascript
复制
$("#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);
      });
    }
  });
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-07 13:54:42

您必须迭代所有获取的行,并将它们放入一个数组中。之后,您可以调用json_encode来获取JSON数组。

请更换

代码语言:javascript
复制
if(mysqli_num_rows($sql)>=1){
      $mem = mysqli_fetch_array($sql,MYSQLI_ASSOC);
      echo json_encode($mem);
}

使用

代码语言:javascript
复制
if(mysqli_num_rows($sql)>=1) {
    $rows = array();      
    while($row = mysqli_fetch_array($sql,MYSQLI_ASSOC)) {
        $rows[] = $row;
    }
    echo json_encode($rows);
}
票数 2
EN

Stack Overflow用户

发布于 2016-09-07 13:57:14

使用mysqli_fetch_all()

代码语言:javascript
复制
if(mysqli_num_rows($sql)>=1){
      $mem = mysqli_fetch_all($sql,MYSQLI_ASSOC);
      echo json_encode($mem);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39362057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档