Decoding a JSON Array From Ajax Request

nvnamsoft

New Member
I finally succeeded in using Ajax to get SOMETHING sent from one page to another! What I'm trying to do is pass an array from a PHP file to a Javascript file, and the Javascript file is receiving this in \[code\]this.responseText\[/code\]:\[code\]<html><head> <script type="text/javascript"> var jsonArray = ["chickens","horses","cows","werewolves","zombies","vampires","phantoms","U.S. Congressmen","performance artists","pieces of fencepost","barnhouses","robots","cyborgs"] </script></head></html>\[/code\]I tried running \[code\]eval()\[/code\] and \[code\]alert\[/code\]ing the result, but no result appears. How do I successfully extract the array from \[code\]this.responseText\[/code\]?Edit Here is my function thus far:\[code\]/* * Function: selectVictim * Called from function laserOn() * * Selects a random victim from a list of victims * * @return String: victim */function selectVictim(){var params = "url=queenofsheep.com/Sheep/victims.php";var request = new ajaxRequest();request.open("POST", "victims.php", true);request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");request.setRequestHeader("Content-Length", params.length);request.setRequestHeader("Connection", "close");request.onreadystatechange = function (){ if (this.readyState == 4) { if (this.status == 200) { if (this.responseText != null ) { var vicArray = eval('('+this.responseText+')'); var numVic = Math.floor(Math.random() * (vicArray - 1)); alert(vicArray); } else alert("Ajax error: No data received"); } else alert("Ajax Error: " + this.statusText); }}request.send(params);} \[/code\]Second Edit The file containing the array (in PHP) is as follows:\[code\]<html><head><?php$victims = array( // Animals "chickens", "horses", "cows", // Supernatural "werewolves", "zombies", "vampires", "phantoms", // Human "U.S. Congressmen", "performance artists", // Inanimate, non-mechanical "pieces of fencepost", "barnhouses", // Mechanical "robots", "cyborgs");?> <script type="text/javascript"> var jsonArray = <?php echo json_encode($victims); ?> </script></head></html>\[/code\]
 
Back
Top