Connecting Tech Pros Worldwide Forums | Help | Site Map

JavaScript and PHP var problem

Brian
Guest
 
Posts: n/a
#1: Jul 23 '05
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
}

?>



Randy Webb
Guest
 
Posts: n/a
#2: Jul 23 '05

re: JavaScript and PHP var problem


Brian wrote:
[color=blue]
> 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[/color]

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.
[color=blue]
> <?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
> }
>
> ?>
>
>
>[/color]


--
Randy
comp.lang.javascript FAQ - http://jibbering.com/faq
Grant Wagner
Guest
 
Posts: n/a
#3: Jul 23 '05

re: JavaScript and PHP var problem


Brian wrote:
[color=blue]
> 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";[/color]

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.
[color=blue]
> ////
> print "</SCRIPT>";
> print "outside javascrpt the reason = $banreason<br>";
> // do PHP SQL here
> }
>
> ?>[/color]

[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 <gwagner@agricoreunited.com>
comp.lang.javascript FAQ - http://jibbering.com/faq

Brian
Guest
 
Posts: n/a
#4: Jul 23 '05

re: JavaScript and PHP var problem


Thanks Guys

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

Brian
[color=blue]
> 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
> }
>
> ?>
>
>
>[/color]


Closed Thread