Connecting Tech Pros Worldwide Forums | Help | Site Map

Help with undefined variable

Jeremy Felt
Guest
 
Posts: n/a
#1: Jan 23 '07
Newbie here. I'm sure I'm missing something EXTREMELY simple, but an
hour of searching has led to nothing.

I'm playing around with ajax and trying to pass a variable to a
function.

If I do:

onclick="myFunction(12345)"

It works fine. If I do:

onclick="myFunction($variable)"

It doesn't work at all and IE gives an error stating that $variable is
undefined.

$variable is given a value right before the onclick statement with PHP
as:

$variable=12345;

There's more code involved, but I'm guessing this is something simple
for somebody with experience. Can anybody help?

Thanks Much!


David Dorward
Guest
 
Posts: n/a
#2: Jan 23 '07

re: Help with undefined variable


Jeremy Felt wrote:
Quote:
It doesn't work at all and IE gives an error stating that $variable is
undefined.
Quote:
$variable is given a value right before the onclick statement with PHP
PHP runs on the server and generates some data which the server sends to the
client.

JavaScript runs on the client.

A variable in PHP won't magically appear in JavaScript. You have to have PHP
generate some JavaScript which creates the variable.

--
David Dorward <http://blog.dorward.me.uk/ <http://dorward.me.uk/>
Home is where the ~/.bashrc is
Jeremy Felt
Guest
 
Posts: n/a
#3: Jan 23 '07

re: Help with undefined variable




On Jan 23, 4:16 pm, David Dorward <dorw...@yahoo.comwrote:
Quote:
Jeremy Felt wrote:
Quote:
It doesn't work at all and IE gives an error stating that $variable is
undefined.
$variable is given a value right before the onclick statement with PHPPHP runs on the server and generates some data which the server sends to the
client.
>
JavaScript runs on the client.
>
A variable in PHP won't magically appear in JavaScript. You have to have PHP
generate some JavaScript which creates the variable.
>
--
David Dorward <http://blog.dorward.me.uk/ <http://dorward.me.uk/>
Home is where the ~/.bashrc is
Right. I think I have that part, but maybe not. I wrote the previous
message too quickly because I was on my way out the door.

I am using PHP for the database stuff and "echo"ing it out as
html/javascript. The real statement in question is along the lines of:

------------------------
$variable=12345;
echo '<span style="underlined text blah blah"
onclick="myFunction($variable)">text</span>'; // doesn't work
-----------------------
vs.
----------------------
echo '<span style="underlined text blah blah"
onclick="myFunction(12345)">text</span>'; // works
-----------------------

A global.js file that defines myFunction is being called earlier in the
code with another echo statement. This part seems to be working
because I can replace $variable with 12345 and have it work.

My admittedly weak understanding is that PHP would pass the value of
$variable to the HTML/JS stuff when it was outputted on the client side
just like any other PHP page working with variables and that Javascript
would never see the $variable portion, just 12345.

Does that change anything/make any sense?

Thanks!

Randy Webb
Guest
 
Posts: n/a
#4: Jan 24 '07

re: Help with undefined variable


Jeremy Felt said the following on 1/23/2007 6:30 PM:
Quote:
>
On Jan 23, 4:16 pm, David Dorward <dorw...@yahoo.comwrote:
Quote:
>Jeremy Felt wrote:
Quote:
>>It doesn't work at all and IE gives an error stating that $variable is
>>undefined.
>>$variable is given a value right before the onclick statement with PHPPHP runs on the server and generates some data which the server sends to the
>client.
>>
>JavaScript runs on the client.
>>
>A variable in PHP won't magically appear in JavaScript. You have to have PHP
>generate some JavaScript which creates the variable.
>>
>--
>David Dorward <http://blog.dorward.me.uk/ <http://dorward.me.uk/>
> Home is where the ~/.bashrc is
>
Right. I think I have that part, but maybe not. I wrote the previous
message too quickly because I was on my way out the door.
>
I am using PHP for the database stuff and "echo"ing it out as
html/javascript. The real statement in question is along the lines of:
>
------------------------
$variable=12345;
echo '<span style="underlined text blah blah"
onclick="myFunction($variable)">text</span>'; // doesn't work
Right Click>View Source.

What HTML is the browser receiving? If it is getting $variable (which
the error indicates) then PHP isn't parsing it as you want and it's a
PHP problem.


onclick="myFunction(<? $variable >)"
--
Randy
Chance Favors The Prepared Mind
comp.lang.javascript FAQ - http://jibbering.com/faq/index.html
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
David Dorward
Guest
 
Posts: n/a
#5: Jan 24 '07

re: Help with undefined variable


Jeremy Felt wrote:
Quote:
The real statement in question is along the lines of:
$variable=12345;
echo '<span style="underlined text blah blah"
onclick="myFunction($variable)">text</span>'; // doesn't work
Quote:
My admittedly weak understanding is that PHP would pass the value of
$variable to the HTML/JS stuff when it was outputted on the client side
just like any other PHP page working with variables and that Javascript
would never see the $variable portion, just 12345.
Which would make this a PHP question. You could View Source and see the
output wasn't what you wanted. Strings delimited by single quotes are not
interpolated in PHP, so echo '$foo' outputs $foo and not the value of a
variable named $foo.

--
David Dorward <http://blog.dorward.me.uk/ <http://dorward.me.uk/>
Home is where the ~/.bashrc is
Jeremy Felt
Guest
 
Posts: n/a
#6: Jan 24 '07

re: Help with undefined variable




On Jan 23, 6:09 pm, David Dorward <dorw...@yahoo.comwrote:
Quote:
Jeremy Felt wrote:
Quote:
The real statement in question is along the lines of:
$variable=12345;
echo '<span style="underlined text blah blah"
onclick="myFunction($variable)">text</span>'; // doesn't work
My admittedly weak understanding is that PHP would pass the value of
$variable to the HTML/JS stuff when it was outputted on the client side
just like any other PHP page working with variables and that Javascript
would never see the $variable portion, just 12345.Which would make this a PHP question. You could View Source and see the
output wasn't what you wanted. Strings delimited by single quotes are not
interpolated in PHP, so echo '$foo' outputs $foo and not the value of a
variable named $foo.
>
--
David Dorward <http://blog.dorward.me.uk/ <http://dorward.me.uk/>
Home is where the ~/.bashrc is

Ahhh, that's making more sense. I usually use double quotes in PHP,
but I was working off of another AJAX sample and hadn't thought to
change the single quotes yet. That's what I get for jumping in without
really knowing what I'm doing.

I'll check this out when I'm back in tomorrow, but I think you have me
on the right path. Thanks again.

Jeremy Felt
Guest
 
Posts: n/a
#7: Jan 24 '07

re: Help with undefined variable


Thanks for the help guys and sorry for the misdirected PHP post. I
separated the $variable from the single quotes and it works beautifully.

Closed Thread