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