Help with undefined variable

J

Jeremy Felt

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!
 
D

David Dorward

Jeremy said:
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.
 
J

Jeremy Felt

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.

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!
 
D

David Dorward

Jeremy said:
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.
 
R

Randy Webb

Jeremy Felt said the following on 1/23/2007 6:30 PM:
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:

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 >)"
 
J

Jeremy Felt

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.


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.
 
J

Jeremy Felt

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

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top