$ .ajax值未正确返回

时间:2012-05-26 17:07:53

标签: php jquery

我试图将数据库中返回的值从PHP数组返回到JavaScript数组。 到目前为止,我所做的是将值作为字符串返回,我希望每个值都是一个数组 索引。

这是我的jQuery AJAX调用:

    $.ajax({
          type: 'GET',
          url: "Profile_Control.php",
          data:"ajaxRequest=yes&id="+document.getElementById("compid").value,
          success:function(data)
          {       
              document.getElementById("asd").innerHTML=data;
          }
        });

这是我到目前为止的PHP脚本,它返回的值就像字符串一样,我想要数组索引中的每个值。

   $branches=Profile_Model::getCompanyBranches($_GET['id']);

    while($row=mysql_fetch_array($branches))
    {
        echo $row[3];
    }

现在我只回显从数据库返回的值的第3列,输出如下:

        67.030867.020467.031167.020667.0357

我想要的结果应该是这样的。

   arr[0]=67.0308
   arr[1]=67.0204
   arr[2]=67.0311
   arr[3]=67.0206
   arr[4]=67.0357

我还尝试使用json_encode($row[3]);在JSON中对数据进行编码,但它会返回以下结果。

  "67.0308""67.0204""67.0311""67.0206""67.0357"

2 个答案:

答案 0 :(得分:2)

创建一个数组,其中包含您最终想要在JS数组中的元素,然后json_encode该数组:

$rows = array();
while($row=mysql_fetch_array($branches)) {
    $rows[] = $row[3];
}
echo json_encode($rows);

但是,data将成为成功回调中的数组,因此您不能简单地将其分配给元素的innerHTML属性。但由于这似乎是调试输出,只需将其替换为console.log(data);

答案 1 :(得分:1)

创建一个每个元素为$row[3]的新数组,通过json_encode发送新数组。

现在你只是对每个$row[3]进行json_encoding。