user2925795 user2925795 - 3 months ago 13
Javascript Question

How to get value in JavaScript array

I'm trying get a value inside a JavaScript array from the output of an AJAX request.

Ajax request:



$.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]);


Returns:



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"
}


I need to access the values inside the array, something like:

var sku = resposta["sku"]


In my tests if I try to print
resposta["sku"]
its giving me "undefined variable".

Answer

On php side you need to change var_dump($produto[0]); to echo json_encode($produto[0]). On JS side you need to change your request to dataType: "json", because it is not a html response. Then you can access the fields by the property names.

var sku  = resposta.sku;
var name = resposta.name;

Your aproach is not wrong to, to access by a string:

var sku  = resposta["sku"];
var name = resposta["name"];

So for conclusion, your php:

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

echo json_encode($produto[0]);

Your AJAX request:

$.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);
}
Comments