我想从我的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);
}
});
任何想法和建议将不胜感激。 。 :)
答案 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); }