如何在JavaScript数组中获得价值

时间:2016-08-29 13:25:05

标签: javascript

我正在尝试从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"]它给我“未定义的变量”。

2 个答案:

答案 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)

  • 为ajax对象设置正确的dataTypedataType: "json"
  • 更改Ajax-Test.php文件内容,如下所示(发送正确的json个回复):

    $produto[] = ['sku' => $product->getSku(), 'name' => $product->getName()];       
    echo json_encode($produto[0]);