在函数响应中设置json数据数组

时间:2015-06-04 06:17:08

标签: php jquery ajax

这是我的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;
}

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

由于您的Response是一个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>