在函数response中设置json数据数组


set json data array in function response

这是我的ajax函数在响应我得到的结果,但我不知道如何在我的页面设置响应。是否可以使用json_decode或者我必须尝试其他方法

JSON文件是

<?php
$group_id = $_POST['group_id'];
$query    = "SELECT *,group_id FROM contact JOIN addressgroup ON addressgroup.contact_id = contact.contact_id WHERE group_id IN (".$group_id.") GROUP BY contact.contact_id";
$res      = mysql_query($query);
$data = array();
$k=0;
while($row = mysql_fetch_array($res))
{
  $data[$k][0] = $row['user_id'];
  $data[$k][1] = $row['first_name'];
  $data[$k][2] = $row['middle_name'];
  $data[$k][3] = $row['last_name'];
  $k++;
}
echo json_encode(array($data));
?>

AJAX函数

  var myarray;
  function getcon() {
  myarray = [];
  myarray.push($(".group_id").val());
  $.ajax({
      dataType: "json",
      type: "POST",
      url: "getcon.php",
      data: 'group_id=' + myarray.join(),
      success: function(data) {
        totalRecords=data.length;
        zone.fnClearTable();
        for(var i=0; i < (data.length); i++) {
        zone.fnAddData([
          data[k][0],
          data[k][1],
          data[k][2],
          data[k][3],
          ]);
        }
        return false;
      }
  });
  return false;
}

响应是一个JSON对象。你必须这样使用它:-

代替

echo json_encode(array($data));

echo json_encode($data); /* because $data is already an array*/

并保持与之前相同

 while($row = mysql_fetch_array($res))
    {
      $data[] = $row['user_id'];
      $data[] = $row['first_name'];
      $data[] = $row['middle_name'];
      $data[] = $row['last_name'];
      $k++;
    }
<script>
 var myarray;
  function getcon() {
  myarray = [];
  myarray.push($(".group_id").val());
  $.ajax({
      dataType: "json",
      type: "POST",
      url: "getcon.php",
      data: 'group_id=' + myarray.join(),
      success: function(data) {
          console.log(data)/* check the structure of data here*/
          zone.fnClearTable();
          zone.fnAddData([
              data.user_id.,
              data.first_name,
              data.middle_name,
              data.last_name,
          ]);
        return false;
      }
  });
  return false;
}
</script>

JSON是一个对象!你正在获取对象,所以在你的ajax函数中,你必须使用一些循环函数,如for$.each JQuery函数。

`success : function (data) {
    $.each (data,function(key,val){
      $("#someId).html(key + " - " + val)
    }
}`