RE: [PHP] Creating a javascript array from database data

2001-08-15 Thread Jon Farmer



--
while you are looping through the date jump in and out of php like this to
populate the javascript array



Re: [PHP] Creating a javascript array from database data

2001-08-15 Thread Sheridan Saint-Michel

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 "\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 "\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:
> 
> --
> 
> 
> Menus test
> 
> 
> 
>  $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();
> ?>
> 
> 
> 
> --
> 
> Thanks, Neil



-- 
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]




Re: [PHP] Creating a javascript array from database data

2001-08-15 Thread Neil Freeman

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:

--


Menus test




 0)
{
   echo "\n";
   echo "text = new Array(";
   while ($i < $number)
   {
  $text = mysql_result($result, $i, "name");

   $i++;

   if ($i < $number)
print ",";
  else
print ")\n";
  }
  echo "\n";
}

mysql_free_result($result);
mysql_close();
?>



--

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 "\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 "\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:
> >
> > --
> > 
> > 
> > Menus test
> > 
> > 
> >
> >  > $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();
> > ?>
> >
> > 
> > 
> > --
> >
> > 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]




RE: [PHP] Creating a javascript array from database data

2001-08-16 Thread Tim Ward

I'm not sure if this is the problem but it is an important point. print
"\"$text\""; does not output anything to screen, as with all prints and
echos it outputs it to html (in this case within a js function definition).
Try viewing the source produced.

Tim

--
From:  Neil Freeman [SMTP:[EMAIL PROTECTED]]
Sent:  15 August 2001 18:10
To:  Sheridan Saint-Michel
Cc:  php-general
    Subject:  Re: [PHP] Creating a javascript array from database data

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:

--


Menus test




 0)
{
   echo "\n";
   echo "text = new Array(";
   while ($i < $number)
   {
  $text = mysql_result($result, $i, "name");

   $i++;

   if ($i < $number)
print ",";
  else
print ")\n";
  }
  echo "\n";
}

mysql_free_result($result);
mysql_close();
?>



--

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 "\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 "\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
> >
> 

Re: [PHP] Creating a javascript array from database data

2001-08-16 Thread Neil Freeman

Yeah thanks Tim. 5:30 in the afternoon does bad things to my logical thinking.
Not the best time to try and learn PHP :)

Neil

Tim Ward wrote:

> I'm not sure if this is the problem but it is an important point. print
> "\"$text\""; does not output anything to screen, as with all prints and
> echos it outputs it to html (in this case within a js function definition).
> Try viewing the source produced.
>
> Tim
>
> --
> From:  Neil Freeman [SMTP:[EMAIL PROTECTED]]
> Sent:  15 August 2001 18:10
> To:  Sheridan Saint-Michel
>         Cc:  php-general
>     Subject:  Re: [PHP] Creating a javascript array from database data
>
> 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:
>
> --
> 
> 
> Menus test
>
> 
> 
>
>  $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 "\n";
>echo "text = new Array(";
>while ($i < $number)
>{
>   $text = mysql_result($result, $i, "name");
>
>$i++;
>
>if ($i < $number)
> print ",";
>   else
> print ")\n";
>   }
>   echo "\n";
> }
>
> mysql_free_result($result);
> mysql_close();
> ?>
>
> 
> 
> --
>
> 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 "\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 "\n";
> > }
> >
> > }
> >
> > Note:  This is my quick *untested* fi

Re: [PHP] Creating a javascript array from database data (Off-List)

2001-08-15 Thread Sheridan Saint-Michel

Think in terms of output...  The JavaScript is literally going to
try and run the output of the PHP (It doesn't even know PHP
exists).  PHP is outputting the source code for the HTML and
JavaScript.  So what you are trying to do is get PHP to take
dog,cat,cow from MySQL and output:


text = new Array("dog","cat","cow")


This block of code does exactly that, with the print"\"$text\"";
filling in dog cat and cow.  I've added comments so you can
see how each line produces the above (I am using C-Style
comments as the // gets mucked up in e-mail)

The parts in [] are comments within comments to show flow
control and are not output.

else
{
/*  */
  echo "<Script Language=\"JavaScript\">\n";
/* text=new Array( */
  echo "text = new Array(";
  while ($i < $number)


$text = mysql_result($result, $i, "name");
/* "dog" [first time] */
/* "cat" [second time] */
/* "cow" [third time] */
print "\"$text\"";
$i++;
if ($i < $number)
/* , [first time] */
/* , [second time] */
   print ",";
else
/* ) [third time] */
  print ")\n";
}
/*  */
  echo "\n";
}

So if you can follow that (just walk all the way through
the loop for each of the three passes) you can see that
no part of the code (including the print "\"$text\"";) is
unnecessary

Hope this helps

Sheridan Saint-Michel
Website Administrator
FoxJet, an ITW Company
www.foxjet.com


- Original Message -----
From: Neil Freeman <[EMAIL PROTECTED]>
To: Sheridan Saint-Michel <[EMAIL PROTECTED]>
Cc: php-general <[EMAIL PROTECTED]>
Sent: Wednesday, August 15, 2001 12:09 PM
Subject: Re: [PHP] Creating a javascript array from database data


> 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:



-- 
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]




Re: [PHP] Creating a javascript array from database data (Off-List)

2001-08-16 Thread Neil Freeman

Thanks for the clarification Sheridan - I think it must have been end of day
madness on my part :) I see what's going on now with the 'print' line.

Cheers,

Neil

Sheridan Saint-Michel wrote:

> ***
>  This message was virus checked with: SAVI 3.48
>  last updated 14th August 2001
> ***
>
> Think in terms of output...  The JavaScript is literally going to
> try and run the output of the PHP (It doesn't even know PHP
> exists).  PHP is outputting the source code for the HTML and
> JavaScript.  So what you are trying to do is get PHP to take
> dog,cat,cow from MySQL and output:
>
> 
> text = new Array("dog","cat","cow")
> 
>
> This block of code does exactly that, with the print"\"$text\"";
> filling in dog cat and cow.  I've added comments so you can
> see how each line produces the above (I am using C-Style
> comments as the // gets mucked up in e-mail)
>
> The parts in [] are comments within comments to show flow
> control and are not output.
>
> else
> {
> /*  */
>   echo "<Script Language=\"JavaScript\">\n";
> /* text=new Array( */
>   echo "text = new Array(";
>   while ($i < $number)
>
> $text = mysql_result($result, $i, "name");
> /* "dog" [first time] */
> /* "cat" [second time] */
> /* "cow" [third time] */
> print "\"$text\"";
> $i++;
> if ($i < $number)
> /* , [first time] */
> /* , [second time] */
>print ",";
> else
> /* ) [third time] */
>   print ")\n";
> }
> /*  */
>   echo "\n";
> }
>
> So if you can follow that (just walk all the way through
> the loop for each of the three passes) you can see that
> no part of the code (including the print "\"$text\"";) is
> unnecessary
>
> Hope this helps
>
> Sheridan Saint-Michel
> Website Administrator
> FoxJet, an ITW Company
> www.foxjet.com
>
> - Original Message -
> From: Neil Freeman <[EMAIL PROTECTED]>
> To: Sheridan Saint-Michel <[EMAIL PROTECTED]>
> Cc: php-general <[EMAIL PROTECTED]>
> Sent: Wednesday, August 15, 2001 12:09 PM
> Subject: Re: [PHP] Creating a javascript array from database data
>
> > 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:
> 

--

 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]