简体   繁体   中英

Passing array through AJAX from php to javascript

I need to get an array generated from a script php. I have Latitude and Longitude for each user in a database. I take the values from the db with this code (file.php):

$query = "SELECT Latitude, Longitude FROM USERS";
$result=mysql_query($query);
$array=array();
while ($data = mysql_fetch_array($result)) {
    $array[]=$data['Latitude'];
    $array[]=$data['Longitude'];
}

echo $array;

and I call with ajax with this code:

$.post('./file.php',
     function( result ){    
         alert(result);
     });

but even if in the script php the array is correct (if I echo array[25] I obtain the right value) in Javascript I obtain "Undefined". How can I get the array in correct way?? thanks!

edit: after encoded with json_encode($array); in php and JSON.parse(result) in javascript seems not working. In the console I have the array, but I can't access to its values. (Array[0] gave me "undefined").

use this

echo json_encode($array);

on server side

and

var arr=JSON.parse(result);

on client side

As Ruslan Polutsygan mentioned, you cen use

echo json_encode($array);

on the PHP Side.

On the Javascript-Side you can simply add the DataType to the $.post()-Function:

$.post(
  './file.php',
  function( result ){    
    console.log(result);
  },
  'json'
);

and the result-Parameter is the parsed JSON-Data.

You can also set the correct Content-Type in your PHP Script. Then jQuery should automaticly parse the JSON Data returned from your PHP Script:

header('Content-type: application/json');

See
http://api.jquery.com/jQuery.post/
http://de3.php.net/json_encode

You need to convert the php array to json, try:

echo json_encode($array);

jQuery should be able to see it's json being returned and create a javascript object out of it automatically.

$.post('./file.php', function(result)
{    
     $.each(result, function()
     {
         console.log(this.Latitude + ":" + this.Longitude);
     });
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM