Re: Creating a javascript array from database data

From: Date: Wed, 15 Aug 2001 16:50:10 +0000
Subject: Re: Creating a javascript array from database data
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-62869@lists.php.net to get a copy of this message
The thing to ALWAYS remember when working with both PHP and JavaScript is that PHP is Server-Side and JavaScript is Client-Side. What this mean is practical terms is that when going from JavaScript to PHP you have to submit or redirect back to the server... and when going from PHP to JavaScript (Like you are trying to do here) you have to make sure your PHP outputs JavaScript. So instead of printing $text you need to actually print the JavaScript... So in your case change the middle of your script to something like: $number = mysql_numrows($result); $i = 0; if ($number == 0) print "Error - No records found"; else { echo "<Script Language=\"JavaScript\">\n"; echo "text = new Array("; while ($i < $number) { $text = mysql_result($result, $i, "name"); print "\"$text\""; $i++; if ($i < $number) print ","; else print ")\n"; } echo "</Script>\n"; } } Note: This is my quick *untested* fix done by modifying your code as little as possible. I would suggest you use mysql_fetch_row and use your loop to parse it rather than making several calls to mysql_result (especially if you are ever going to have more than a few entries in the DB). Sheridan Saint-Michel Website Administrator FoxJet, an ITW Company www.foxjet.com ----- Original Message ----- From: Neil Freeman <neil.freeman@asa.co.uk> To: PHP General <php-general@lists.php.net> Sent: Wednesday, August 15, 2001 11:16 AM Subject: [PHP] Creating a javascript array from database data > Hi there, > > Well after a few hours roaming around various websites I am at a loss. > Here is what I am trying to do: > > 1) Access a MySQL database which contains 1 table > 2) Read the records from this table > 3) Store the values returned from this table into javascript array > elements, ie, if I get the values "dog", "cat" and "cow" back I > want > these stored in an array as such: > myArray[0] = valueReturned1 > myArray[1] = valueReturned2 > myArray[2] = valueReturned3 > > You get the idea. > > Problem being that I cannot work out how to implement the javascript > section of this. At the moment my php script writes the values returned > from the database to screen but I require these to be stored in a > javascript array. Please can someone help me before I go mad :) > > Here is my current .php script: > > ---------------------------------------------- > <html> > <head> > <title>Menus test</title> > </head> > <body bgcolor="white"> > > <?php > $dbhost = 'localhost'; > $dbuser = 'guest'; > $dbpass = 'guest'; > $dbname = 'IFE'; > $dbtable = 'menus'; > > file://------ DATABASE CONNECTION --------// > mysql_connect($dbhost,$dbuser,$dbpass) > or die ("Unable to connect to database"); > > mysql_select_db($dbname) > or die ("Unable to select database"); > > > $sql = "SELECT * FROM $dbtable"; > $result = mysql_query($sql); > > $number = mysql_numrows($result); > > $i = 0; > > if ($number == 0) > print "Error - No records found"; > elseif ($number > 0) > { > while ($i < $number) > { > $text = mysql_result($result, $i, "name"); > print "$text"; > > $i++; > } > } > > mysql_free_result($result); > mysql_close(); > ?> > > </body> > </html> > ---------------------------------------------- > > Thanks, Neil

« previous php.general (#62869) next »