Re: Creating a javascript array from database data

From: Date: Wed, 15 Aug 2001 17:09:51 +0000
Subject: Re: Creating a javascript array from database data
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-62874@lists.php.net to get a copy of this message
Thanks a lot for your help Sheridan, This now appears to work ok :) but if I remove the: print "\"$text\""; line (as it is not required), I receive errors complaining about a syntax error (related to what?) and that 'text' is undefined. As this line simply outputs the value to screen why should this cause a problem if it is removed? Or could it be some other problem? Neil PS: Here is my updated code: -------------------------- <html> <head> <title>Menus test</title> </head> <body bgcolor="white"> <?php $dbhost = 'localhost'; $dbuser = 'guest'; $dbpass = 'guest'; $dbname = 'IFE'; $dbtable = 'menus'; //------ 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) { echo "<Script Language=\"JavaScript\">\n"; echo "text = new Array("; while ($i < $number) { $text = mysql_result($result, $i, "name"); $i++; if ($i < $number) print ","; else print ")\n"; } echo "</Script>\n"; } mysql_free_result($result); mysql_close(); ?> </body> </html> -------------------------- Sheridan Saint-Michel wrote: > *************************************************************** > This message was virus checked with: SAVI 3.48 > last updated 14th August 2001 > *************************************************************** > > 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 -- -------------------------------- Email: neil.freeman@asa.co.uk neil_freeman@yahoo.com --------------------------------

« previous php.general (#62874) next »