469,572 Members | 1,284 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,572 developers. It's quick & easy.

Help with undefined variable

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!

Jan 23 '07 #1
6 1701
Jeremy Felt wrote:
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
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
Jan 23 '07 #2


On Jan 23, 4:16 pm, David Dorward <dorw...@yahoo.comwrote:
Jeremy Felt wrote:
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!

Jan 23 '07 #3
Jeremy Felt said the following on 1/23/2007 6:30 PM:
>
On Jan 23, 4:16 pm, David Dorward <dorw...@yahoo.comwrote:
>Jeremy Felt wrote:
>>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/
Jan 24 '07 #4
Jeremy Felt wrote:
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
Jan 24 '07 #5


On Jan 23, 6:09 pm, David Dorward <dorw...@yahoo.comwrote:
Jeremy Felt wrote:
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.

Jan 24 '07 #6
Thanks for the help guys and sorry for the misdirected PHP post. I
separated the $variable from the single quotes and it works beautifully.

Jan 24 '07 #7

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

7 posts views Thread by Coder Droid | last post: by
4 posts views Thread by Chris Beall | last post: by
49 posts views Thread by matty | last post: by
17 posts views Thread by yb | last post: by
4 posts views Thread by guiromero | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.