开发者

Using JavaScript to access a JSON array from PHP

开发者 https://www.devze.com 2023-02-04 05:06 出处:网络
I\'m trying to understand how my PHP script can pass an array to my JavaScript code. Using the following PHP, I pass an array:

I'm trying to understand how my PHP script can pass an array to my JavaScript code. Using the following PHP, I pass an array:

$c = array(3,2,7);

echo json_encode($c);

My JavaScript is as follows:

    $.post("getLatLong.php", { latitude: 500000},
        function(data) {
            arrayData = data
            document.write(arrayData)
            document.write(arrayData[0]);
            document.write(arrayData[0]);
            document.write(arrayData[0]);
        });
</script>

What is printed out on the screen is

[3,2,7][开发者_如何学C3,

I'm trying to understand how json_encode works - I thought I would be able to pass the array to a variable, and then access it like a normal JavaScript array, but it views my array as one large text string. How do ensure that it reads it like an array?


Pass the dataType argument to $.post:

$.post("getLatLong.php", { latitude: 500000},
   function(data){         
   // ...
}, 'json');

Then data will be properly decoded.

Alternatively you can also use $.parseJSON in the callback.

Explanation of JSON:

JSON is a data exchange format. It specifies the structure of the data string that is transmitted. json_encode takes a PHP data structure like an array or an object and transformes it to JSON, i.e. a string with a certain format.

json_encode($c) will give you the string "[3,2,7]".

On the client site, you receive that string, but you have to decode it in to proper JavaScript data structures. So $.parseJSON(data) will give you a JavaScript array with 3 elements (or if you pass 'json' as third parameter to .post(), jQuery is doing the decoding automatically for you).

0

精彩评论

暂无评论...
验证码 换一张
取 消