Skip to content
Advertisement

how to get data to javascript from php using json_encode?

I am trying to map traceroutes to google maps.

I have an array in php with traceroute data as

$c=ip,latitude,longitude, 2nd ip, its latitude, longitude, ....target ip, its lat, its lng

I used json_encode($c, JSON_FORCE_OBJECT) and saved the file

Now, how do I access this using javascript, by directly equating it to new JS object?

earlier I used to have a data format like this on harddrive

var data12 = {

"route":[
{
    "ip": "some ip",

    "longitude": "some lng",

    "latitude": "some lat",

.....

and in my javascript it was used as

data=data12.route;

and then simply acces the members as data[1].latitude

Advertisement

Answer

I recommend using the jQuery library. The minified version only has 31 kB in size and provides lots of useful functions.

For parsing JSON, simply do

var obj = jQuery.parseJSON ( ' {"name" : "John"} ' );

You can now access everything easily:

alert ( obj.name );

Note: jQuery uses the browser’s native JSON parser – if available – which is very quick and much safer then using the eval () method.

Edit: To get data from the server side to the client side, there are two possibilities:

1.) Use an AJAX request (quite simple with jQuery):

   $.ajax ( {
       url: "yourscript.php",
       dataType: "json",
       success: function ( data, textStatus, jqXHR ) {
           // process the data, you only need the "data" argument
           // jQuery will automatically parse the JSON for you!
       }
   } );

2.) Write the JSON object into the Javascript source code at page generation:

   <?php
       $json = json_encode ( $your_array, JSON_FORCE_OBJECT );
   ?>

   <script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>

   <script type="text/javascript">
   //<![CDATA[

   var json_obj = jQuery.parseJSON ( ' + <?php echo $json; ?> + ' );

   //]]>
   </script>
User contributions licensed under: CC BY-SA
10 People found this is helpful
Advertisement