从PHP到AJAX返回多个值的UNDEFINED响应?

时间:2015-08-14 19:47:03

标签: php ajax

我想从我的php获取返回多个值到ajax,但问题是我总是从我的页面得到一个未定义的响应。我尝试了不同的方法,但仍然遇到同样的问题

这是我的代码......

addSizeandPrice.php

if($selectResult){
    while($data = mysqli_fetch_assoc($selectResult)){
        $dataprice = $data['Price'];
        $datasize = $data['CoffeeSize'];

        echo json_encode (array(
            'size' => $datasize,
            'price' => $dataprice,
        ));
    }
}

billingCoffee.php

$.ajax({
    url: "addSizeandPrice.php",
    type: "POST",
    data: {coffeename: txtCoffeeName, sizes: cmbSizes, price: txtPrice},
    datatype: "json",
    success: function (result){
        alert(result.size);
        alert(result.price);
    }
});

任何想法和建议将不胜感激。 。 :)

1 个答案:

答案 0 :(得分:0)

您的json_encode不正确。如果您的数据库查询返回MULTIPLE行,那么您将发送MULTIPLE单独的json编码字符串,这是一个语法错误。 e.g。

{"size":"val1","price":"val1"}{"size":"val2","price":"val2"}
                             ^^--illegal/invalid javascript

你应该:

$arr = array();
while($data = mysqli_fetch_assoc($selectResult)){
    $dataprice = $data['Price'];
    $datasize = $data['CoffeeSize'];
    $arr[] = array(
        'size' => $datasize,
        'price' => $dataprice,
    )
}
echo json_encode($arr);

会产生:

[{"size":"val1","price":"val1"},{"size":"val2","price":"val2"}]

这是有效的javascript / json,然后是

success: function(response) { console.log(response[0].size); }