我正在尝试从AJAX请求的输出中获取JavaScript数组中的值。
Ajax请求:
$.ajax({
url: "ajax-test.php",
type: "POST",
data: "sku=800270",
dataType: "html"
}).done(function(resposta) {
console.log(resposta);
}
Ajax的test.php的:
$produto[] = array('sku' => $product->getSku(),
'name' => $product->getName());
var_dump($produto[0]);
返回:
array(6) {
["sku"]=>
string(6) "000188"
["name"]=>
string(80) "Cuba Gastronômica Aço Inoxidável para Buffet GN 1/2×65mm (325x265mm) - 812-2"
}
我需要访问数组中的值,如:
var sku = resposta["sku"]
在我的测试中,如果我尝试打印resposta["sku"]
它给我“未定义的变量”。
答案 0 :(得分:2)
在php端,您需要将var_dump($produto[0]);
更改为echo json_encode($produto[0])
。在JS方面,您需要将您的请求更改为dataType: "json"
,因为它不是HTML响应。然后,您可以按属性名称访问字段。
var sku = resposta.sku;
var name = resposta.name;
通过字符串访问您的aproach没有错误:
var sku = resposta["sku"];
var name = resposta["name"];
总而言之,你的php:
$produto[] = array(
'sku' => $product->getSku(),
'name' => $product->getName()
);
echo json_encode($produto[0]);
您的AJAX请求:
$.ajax({
url: "ajax-test.php",
type: "POST",
data: "sku=800270",
dataType: "json"
}).done(function(resposta) {
var sku = resposta.sku;
var name = resposta.name;
console.log(sku, name);
}
答案 1 :(得分:1)
dataType
为dataType: "json"
更改Ajax-Test.php
文件内容,如下所示(发送正确的json
个回复):
$produto[] = ['sku' => $product->getSku(), 'name' => $product->getName()];
echo json_encode($produto[0]);