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 <[EMAIL PROTECTED]>
> To: PHP General <[EMAIL PROTECTED]>
> 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:  [EMAIL PROTECTED]
         [EMAIL PROTECTED]
--------------------------------



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to