JSON PHP Array for Javascript

Can JSON use this php array via json_encode? Since this php array is called $data and when I do it.

 var myJson = <?php echo json_encode($data) ?>; console.log(myJson); 

in javascript, this gives me errors. I was wondering if there is a restriction on what types of php arrays JSON can / cannot do.

 Array ( [0] => Array ( [0] => Array ( [text] => SimpleXMLElement Object ( [0] => Tanner, C. kickoff 60 yards to the DU5, Butler, L return 14 yards to the DU19 (Johnson, I.). ) [spot] => SimpleXMLElement Object ( [0] => GT35 ) [ball] => SimpleXMLElement Object ( [0] => GT ) [togo] => SimpleXMLElement Object ( [0] => 10 ) [type] => SimpleXMLElement Object ( [0] => K ) [drive] => 1 ) ) [1] => Array ( [0] => Array ( [text] => SimpleXMLElement Object ( [0] => Renfree, S pass complete to Vernon, C for 6 yards to the DU25 (Thomas, Je.). ) [spot] => SimpleXMLElement Object ( [0] => DU19 ) [ball] => SimpleXMLElement Object ( [0] => DU ) [togo] => SimpleXMLElement Object ( [0] => 10 ) [type] => SimpleXMLElement Object ( [0] => P ) [drive] => 2 ) [1] => Array ( [text] => SimpleXMLElement Object ( [0] => Renfree, S pass incomplete to Scott, D. ) [spot] => SimpleXMLElement Object ( [0] => DU25 ) [ball] => SimpleXMLElement Object ( [0] => DU ) [togo] => SimpleXMLElement Object ( [0] => 4 ) [type] => SimpleXMLElement Object ( [0] => P ) [drive] => 2 ) [2] => Array ( [text] => SimpleXMLElement Object ( [0] => Renfree, S pass complete to Scott, D for 6 yards to the DU31, 1ST DOWN DU (Thomas, Je.). ) [spot] => SimpleXMLElement Object ( [0] => DU25 ) [ball] => SimpleXMLElement Object ( [0] => DU ) [togo] => SimpleXMLElement Object ( [0] => 4 ) [type] => SimpleXMLElement Object ( [0] => P ) [drive] => 2 ) [3] => Array ( [text] => SimpleXMLElement Object ( [0] => Renfree, S pass complete to Scott, D for no gain to the DU31 (Sweeting, R.). ) [spot] => SimpleXMLElement Object ( [0] => DU31 ) [ball] => SimpleXMLElement Object ( [0] => DU ) [togo] => SimpleXMLElement Object ( [0] => 10 ) [type] => SimpleXMLElement Object ( [0] => P ) [drive] => 2 ) [4] => Array ( [text] => SimpleXMLElement Object ( [0] => Renfree, S pass incomplete to Vernon, C. ) [spot] => SimpleXMLElement Object ( [0] => DU31 ) [ball] => SimpleXMLElement Object ( [0] => DU ) [togo] => SimpleXMLElement Object ( [0] => 10 ) [type] => SimpleXMLElement Object ( [0] => P ) [drive] => 2 ) [5] => Array ( [text] => SimpleXMLElement Object ( [0] => Renfree, S sacked for loss of 4 yards to the DU27 (Gotsis, A.). ) [spot] => SimpleXMLElement Object ( [0] => DU31 ) [ball] => SimpleXMLElement Object ( [0] => DU ) [togo] => SimpleXMLElement Object ( [0] => 10 ) [type] => SimpleXMLElement Object ( [0] => P ) [drive] => 2 ) [6] => Array ( [text] => SimpleXMLElement Object ( [0] => Monday, W punt 53 yards to the GT20, Golden, J. return 8 yards to the GT28 (Reeves, D). ) [spot] => SimpleXMLElement Object ( [0] => DU27 ) [ball] => SimpleXMLElement Object ( [0] => DU ) [togo] => SimpleXMLElement Object ( [0] => 14 ) [type] => SimpleXMLElement Object ( [0] => U ) [drive] => 2 ) ) [2] => Array ( [0] => Array ( [text] => SimpleXMLElement Object ( [0] => Smith, O. rush for 8 yards to the GT36 (Brown, Ky). ) [spot] => SimpleXMLElement Object ( [0] => GT28 ) [ball] => SimpleXMLElement Object ( [0] => GT ) [togo] => SimpleXMLElement Object ( [0] => 10 ) [type] => SimpleXMLElement Object ( [0] => R ) [drive] => 3 ) [1] => Array ( [text] => SimpleXMLElement Object ( [0] => Sims, D. rush for 6 yards to the GT42, 1ST DOWN GT (Sink, N). ) [spot] => SimpleXMLElement Object ( [0] => GT36 ) [ball] => SimpleXMLElement Object ( [0] => GT ) [togo] => SimpleXMLElement Object ( [0] => 2 ) [type] => SimpleXMLElement Object ( [0] => R ) [drive] => 3 ) [2] => Array ( [text] => SimpleXMLElement Object ( [0] => Washington, T. pass incomplete to Smith, O.. ) [spot] => SimpleXMLElement Object ( [0] => GT42 ) [ball] => SimpleXMLElement Object ( [0] => GT ) [togo] => SimpleXMLElement Object ( [0] => 10 ) [type] => SimpleXMLElement Object ( [0] => P ) [drive] => 3 ) [3] => Array ( [text] => SimpleXMLElement Object ( [0] => Washington, T. rush for 2 yards to the GT44 (Anunike, K). ) [spot] => SimpleXMLElement Object ( [0] => GT42 ) [ball] => SimpleXMLElement Object ( [0] => GT ) [togo] => SimpleXMLElement Object ( [0] => 10 ) [type] => SimpleXMLElement Object ( [0] => R ) [drive] => 3 ) [4] => Array ( [text] => SimpleXMLElement Object ( [0] => Greene, J. rush for 6 yards to the 50 yardline (Canty, W). ) [spot] => SimpleXMLElement Object ( [0] => GT44 ) [ball] => SimpleXMLElement Object ( [0] => GT ) [togo] => SimpleXMLElement Object ( [0] => 8 ) [type] => SimpleXMLElement Object ( [0] => R ) [drive] => 3 ) [5] => Array ( [text] => SimpleXMLElement Object ( [0] => Smith, O. rush for 16 yards to the DU34, 1ST DOWN GT (Canty, W;France, C). ) [spot] => SimpleXMLElement Object ( [0] => GT50 ) [ball] => SimpleXMLElement Object ( [0] => GT ) [togo] => SimpleXMLElement Object ( [0] => 2 ) [type] => SimpleXMLElement Object ( [0] => R ) [drive] => 3 ) [6] => Array ( [text] => SimpleXMLElement Object ( [0] => Smith, O. rush for 5 yards to the DU29 (France, C). ) [spot] => SimpleXMLElement Object ( [0] => DU34 ) [ball] => SimpleXMLElement Object ( [0] => GT ) [togo] => SimpleXMLElement Object ( [0] => 10 ) [type] => SimpleXMLElement Object ( [0] => R ) [drive] => 3 ) [7] => Array ( [text] => SimpleXMLElement Object ( [0] => Laskey, Z. rush for 3 yards to the DU26 (France, C). ) [spot] => SimpleXMLElement Object ( [0] => DU29 ) [ball] => SimpleXMLElement Object ( [0] => GT ) [togo] => SimpleXMLElement Object ( [0] => 5 ) [type] => SimpleXMLElement Object ( [0] => R ) [drive] => 3 ) [8] => Array ( [text] => SimpleXMLElement Object ( [0] => Washington, T. rush for 3 yards to the DU23, 1ST DOWN GT (France, C). ) [spot] => SimpleXMLElement Object ( [0] => DU26 ) [ball] => SimpleXMLElement Object ( [0] => GT ) [togo] => SimpleXMLElement Object ( [0] => 2 ) [type] => SimpleXMLElement Object ( [0] => R ) [drive] => 3 ) [9] => Array ( [text] => SimpleXMLElement Object ( [0] => Washington, T. pass complete to Smith, O. for 21 yards to the DU2, 1ST DOWN GT (Butler, L). ) [spot] => SimpleXMLElement Object ( [0] => DU23 ) [ball] => SimpleXMLElement Object ( [0] => GT ) [togo] => SimpleXMLElement Object ( [0] => 10 ) [type] => SimpleXMLElement Object ( [0] => P ) [drive] => 3 ) [10] => Array ( [text] => SimpleXMLElement Object ( [0] => Washington, T. rush for 1 yard to the DU1 (Brown, Ky;Foxx, J). ) [spot] => SimpleXMLElement Object ( [0] => DU02 ) [ball] => SimpleXMLElement Object ( [0] => GT ) [togo] => SimpleXMLElement Object ( [0] => 0 ) [type] => SimpleXMLElement Object ( [0] => R ) [drive] => 3 ) [11] => Array ( [text] => SimpleXMLElement Object ( [0] => Washington, T. rush for no gain to the DU1 (Cockrell, R). ) [spot] => SimpleXMLElement Object ( [0] => DU01 ) [ball] => SimpleXMLElement Object ( [0] => GT ) [togo] => SimpleXMLElement Object ( [0] => 0 ) [type] => SimpleXMLElement Object ( [0] => R ) [drive] => 3 ) [12] => Array ( [text] => SimpleXMLElement Object ( [0] => Washington, T. rush for 1 yard to the DU0, TOUCHDOWN, clock 06:51. ) [spot] => SimpleXMLElement Object ( [0] => DU01 ) [ball] => SimpleXMLElement Object ( [0] => GT ) [togo] => SimpleXMLElement Object ( [0] => 0 ) [type] => SimpleXMLElement Object ( [0] => R ) [drive] => 3 ) [13] => Array ( [text] => SimpleXMLElement Object ( [0] => Tanner, C. kick attempt good. ) [spot] => SimpleXMLElement Object ( [0] => DU03 ) [ball] => SimpleXMLElement Object ( [0] => GT ) [togo] => SimpleXMLElement Object ( [0] => 0 ) [type] => SimpleXMLElement Object ( [0] => X ) [drive] => 3 ) [14] => Array ( [text] => SimpleXMLElement Object ( [0] => Tanner, C. kickoff 54 yards to the DU11, Butler, L return 23 yards to the DU34 (Harrell, A.). ) [spot] => SimpleXMLElement Object ( [0] => GT35 ) [ball] => SimpleXMLElement Object ( [0] => GT ) [togo] => SimpleXMLElement Object ( [0] => 0 ) [type] => SimpleXMLElement Object ( [0] => K ) [drive] => 3 ) ) ) 
+4
source share
5 answers

First you need a PHP file on an Apache server somewhere with PHP installed. Create the file as follows:

localhost:8888/myfile.php

 <?php $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); echo json_encode($arr); // {"a":1,"b":2,"c":3,"d":4,"e":5} ?> 

Then your JavaScript (in this example, I'm using jQuery ):

 $.getJSON('http://localhost:8888/myfile.php', function(data) { console.log(data); }); 

This should be the start of creating PHP arrays for your JavaScript.

+5
source

Like @Allendar said you cannot embed PHP inside a JS file. However, you could add a function to your JS file to load the JSON data, and then paste that data into the script tag in your PHP file.

example.js:

 var loadJsonFromPHP = function(json) { console.log(json); } 

example.php:

 <?php $data = array("some", "test", "data"); ?> <html> <head> <script src="example.js"></script> <script> loadJsonFromPHP(<?php echo json_encode($data) ?>); </script> </head> <body></body> </html> 

Edit: this assumes that you only need to get the data in JS once when the page loads, in which case you can skip the execution of AJAX requests.

+4
source

Passing PHP JSON to Javascript and Reading

var stuff = <?php print json_encode($datajson); ?>; var arr = new Array(); arr= JSON.parse(stuff); document.write( arr[0].cust_code );

+3
source

JSON can handle any type of array (although it will pass associative arrays as objects). The problem you are probably facing is that you are trying to output with PHP when the data is only available in Javascript.

To clarify: after loading the page, PHP can do nothing. Only javascript can handle things on the client side, PHP only works on the server and does not know the state of the client.

-1
source

I have never tried to do something like this, but I think you have a problem because json_encode returns a json encoded string. Then you need to decode this string on the JavaScript side. Try the following:

 var myJson = JSON.parse(<?php echo json_encode($data) ?>); console.log(myJson); 
-1
source

All Articles