mdshare Posted April 6, 2008 Share Posted April 6, 2008 JavaScript cannot actively read variables from the server, but when a page loads, PHP can pass variables to JavaScript by writing to the page the JavaScript is on. <?php $username = "Snib"; ?> ... <script language="javascript" type="text/javascript"> var sStr = "My name is <?php echo $username ?>."; document.write(sStr); </script> ... This code will output this text: ... My name is Snib. ... By editing the JavaScript on the page, PHP can set JavaScript variables. This is very useful for passing database values to JavaScript to compare with a JavaScript variable or number. Let's say that there is a MySQL database called db1, with a table called table1, which has two columns, 'userid' and 'usernum'. To retrieve information about Snib, you can use code like this: <?php $connection = mysql_connect('localhost', 'username', 'password'); $sql = mysql_select_db('db1', $connection); $userid = "Snib"; $query = "SELECT * FROM `table1` WHERE userid='$userid'"; $result = mysql_query($query); $data = mysql_fetch_assoc($result); $usernum = $data['usernum']; ?> <script language="javascript" type="text/javascript"> var userid = "<?php echo $userid; ?>"; var usernum = "<?php echo $usernum; ?>"; //if usernum is less than or equal to 50 if (usernum <= 50) { alert("You are not allowed on this page, " + userid); setTimeout('window.location = "otherpage.php"', 3000); // user leaves in 3 seconds } else { alert('Welcome to this page, ' + userid); } </script> <?php mysql_close($connection); ?> Although setting JavaScript variables with PHP is helpful, it cannot always be done. For instance, PHP cannot modify external .js documents temporarily. It changes them for good. Reference: MySQL with PHP: http://php.net/mysql JavaScript: http://javascript.com http://msdn.microsoft.com/library/default.asp (JScript and DHTML) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.