471,338 Members | 1,084 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,338 software developers and data experts.

JavaScript and PHP var problem

Hi

I'm trying to get a small script working I need to get the user to
input some info from a prompt and then use that info in
a PHP script, but I can't seem to assign the JavaScript var
to a PHP var

<?PHP

if ($do == 'ban') {
print "<SCRIPT language=JavaScript>";
print "var reason; ";
print 'reason=prompt("Please enter the reason for banning this
user:","");';
print "document.write(\"Banning ID $id - \"+reason+\"<br>\");";

/// problem here none of these work

print "document.write(\"$banreason =\"+reason+\"\");";
print "$banreason = reason";
////
print "</SCRIPT>";
print "outside javascrpt the reason = $banreason<br>";
// do PHP SQL here
}

?>

Jul 23 '05 #1
3 2235
Brian wrote:
Hi

I'm trying to get a small script working I need to get the user to
input some info from a prompt and then use that info in
a PHP script, but I can't seem to assign the JavaScript var
to a PHP var
Thats because by the time the prompt has appeared, the PHP script on the
server is finished processing. If you need to get info back to the
server, submit a form, let PHP handle the form. JS and PHP can't
communicate the way you are trying to do it.
<?PHP

if ($do == 'ban') {
print "<SCRIPT language=JavaScript>";
print "var reason; ";
print 'reason=prompt("Please enter the reason for banning this
user:","");';
print "document.write(\"Banning ID $id - \"+reason+\"<br>\");";

/// problem here none of these work

print "document.write(\"$banreason =\"+reason+\"\");";
print "$banreason = reason";
////
print "</SCRIPT>";
print "outside javascrpt the reason = $banreason<br>";
// do PHP SQL here
}

?>

--
Randy
comp.lang.javascript FAQ - http://jibbering.com/faq
Jul 23 '05 #2
Brian wrote:
Hi

I'm trying to get a small script working I need to get the user to
input some info from a prompt and then use that info in
a PHP script, but I can't seem to assign the JavaScript var
to a PHP var

<?PHP

if ($do == 'ban') {
print "<SCRIPT language=JavaScript>";
print "var reason; ";
print 'reason=prompt("Please enter the reason for banning this
user:","");';
print "document.write(\"Banning ID $id - \"+reason+\"<br>\");";

/// problem here none of these work

print "document.write(\"$banreason =\"+reason+\"\");";
print "$banreason = reason";
You can not set a server-side variable from client-side JavaScript[1].
PHP reads and parses the code above and generates HTML (which may or
may not include client-side JavaScript). That HTML is sent to the
client to be rendered, ignored, saved to disk, whatever. It does not
matter, by the time the client sees _ANY_ of the client-side
JavaScript you have written, the server has already forgotten about
that request and moved on to other tasks. To say it another way, PHP
is _not_ processed a line at a time with the client and server
interacting in any way. PHP parses the entire file and sends the
result to the client.
////
print "</SCRIPT>";
print "outside javascrpt the reason = $banreason<br>";
// do PHP SQL here
}

?>


[1] this is not completely true, there are ways of getting client-side
values to the server, but not the way you are attempting to do, and
not while the page is being parsed by PHP. For example, you could have
something like:

<script type="text/javascript">
function saveInDatabase(someVariable) {
var phpDispatcher = new Image();
phpDispatcher.src =
'http://someserver/saveInDatabase.php?theValue=' + someVariable;
}
</script>
<a href="#" onclick="saveInDatabase(prompt('Enter a value to save in
the database'));return false;">Click here</a>

but this concept can _not_ be used to return a value to the server for
use in the same page it is currently parsing.

--
Grant Wagner <gw*****@agricoreunited.com>
comp.lang.javascript FAQ - http://jibbering.com/faq

Jul 23 '05 #3
Thanks Guys

Time for a re-think :) I feel some cookies coming on :)

Brian
Hi

I'm trying to get a small script working I need to get the user to
input some info from a prompt and then use that info in
a PHP script, but I can't seem to assign the JavaScript var
to a PHP var

<?PHP

if ($do == 'ban') {
print "<SCRIPT language=JavaScript>";
print "var reason; ";
print 'reason=prompt("Please enter the reason for banning this
user:","");';
print "document.write(\"Banning ID $id - \"+reason+\"<br>\");";

/// problem here none of these work

print "document.write(\"$banreason =\"+reason+\"\");";
print "$banreason = reason";
////
print "</SCRIPT>";
print "outside javascrpt the reason = $banreason<br>";
// do PHP SQL here
}

?>

Jul 23 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

13 posts views Thread by Kai Grossjohann | last post: by
136 posts views Thread by Matt Kruse | last post: by
reply views Thread by rosydwin | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.