将数组从php传递到ajax

时间:2014-08-14 19:56:33

标签: php jquery arrays ajax

我知道这个问题已经有了几个不同的答案,但我尝试过每一种方法,但仍然没有取得进展。我试图将数组传递给ajax,但ajax将响应数据视为字符串。

这是我的php代码:

$code = mysqli_real_escape_string($con, $_POST['bragcode']);

$re_query = "SELECT * FROM reordertbl WHERE reordercode = '$code'";
$result = mysqli_query($con,$re_query);
$rowSelected   = mysqli_fetch_array($result, MYSQLI_ASSOC);
if ($rowSelected) {
   $id = $rowSelected["orderId"];
   $data = "SELECT bragName, bragTitle, groupUUID FROM ordertbl WHERE orderId = '$id'";
   $dataresult = mysqli_query($con,$data);
   $dataSelected   = mysqli_fetch_array($dataresult, MYSQLI_ASSOC);

   $response = array("1", $dataSelected["bragName"], $dataSelected["bragTitle"], $dataSelected["groupUUID"]);

   }else {

   $response = 0;
}

echo json_encode($response);


mysqli_close($con);

将$ response数组传递给ajax:

$.ajax({
        url: 'searchBrag.php',
        type: 'POST', 
        data: bragdata,
        datatype: 'json',
        encode: true,
        success: function (data){
                    var m = data[0];
                    console.log(data);
                    console.log(m);
                 }
})

我的控制台日志提供了这个输出:

console.log(data)返回正确的数据 - [“1”,“我的拉斯维加斯之旅”,“vega中发生的事情”,“a6fa55c1-da29-400b-9ce9-646e58dd5ed6~2”]

console.log(m)返回第一个括号,这不是期望 - [

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

在你的jquery ajax调用中,"数据类型"应该是" dataType" (区分大小写)。

目前你的jquery将响应视为字符串,这就是为什么m [0]导致[字符(因为字符串以该字符开头)。

答案 1 :(得分:0)

尝试添加

contentType: 'application/json; charset=utf-8',

SO:

$.ajax({
        url: 'searchBrag.php',
        type: 'POST', 
        contentType: 'application/json; charset=utf-8',
        data: bragdata,
        datatype: 'json',
        encode: true,
        success: function (data){
                    var m = data[0];
                    console.log(data);
                    console.log(m);
                 }
})