Continued from page 1
</html> Now go to http://www.yourdomain.com/client1.php and click on
button that says 'Update date'. The date will update, without
page having to be reloaded. This is done with
XML HTTP Request object. This example can also be viewed online at http://www.phpit.net/demo/php%20on%20the%20fly/client1.php.
Example 2 Let's try a more advanced example. In
following example,
visitor can enter two numbers, and they are added up by PHP (and not by JavaScript). This shows
true power of PHP and
XML HTTP Request Object.
This example uses
same script.js as in
first example, so you don't need to create this again. First, copy
code below and paste it in a file called 'server2.php':
<?php// Get numbers $num1 = intval($_GET['num1']); $num2 = intval($_GET['num2']);
// Return answer echo ($num1 + $num2);
?>
And then, copy
code below, and paste it in a file called 'client2.php'. Please note though that you need to edit
line that says 'http://www.yourdomain.com/server2.php' to
correct location of server2.php on your server. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN"> <html> <head> <title>Example 2</title> <script src="script.js" type="text/javascript"></script><script type="text/javascript"> function calc() { num1 = document.getElementById ('num1').value; num2 = document.getElementById ('num2').value;
var element = document.getElementById('answer'); xmlhttp.open("GET", 'http://www.yourdomain.com/server2.php?num1=' + num1 + '&num2=' + num2); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { element.value = xmlhttp.responseText; } } xmlhttp.send(null); } </script> </head>
<body> Use
below form to add up two numbers. The answer is calculated by a PHP script, and <em>not</em> with JavaScript. What's
advantage to this? You can execute server-side scripts (PHP) without having to refresh
page.<br /><br />
<input type="text" id="num1" size="3" /> + <input type="text" id="num2" size="3" /> = <input type="text" id="answer" size="5" />
<input type="button" value="Calculate!" OnClick="calc();" /> </body>
</html>
When you run this example, you can add up two numbers, using PHP and no reloading at all! If you can't get this example to work, then have a look on http://www.phpit.net/demo/php%20on%20the%20fly/client3.php to see
example online.Any Disadvantages...? There are only two real disadvantages to this system. First of all, anyone who has JavaScript turned off, or their browser doesn't support
XML HTTP Request Object will not be able to run it. This means you will have to make sure that there is a non-JavaScript version, or make sure all your visitors have JavaScript enabled (e.g. an Intranet application, where you can require JS).
Another disadvantage is
fact that it breaks bookmarks. People won't be able to bookmark your pages, if there is any dynamic content in there. But if you're creating a PHP application (and not a PHP website), then bookmarks are probably not very useful anyway.
Conclusion As I've shown you, using two very simple examples, it is entirely possible to execute PHP scripts, without having to refresh
page. I suggest you read more about
XML HTTP Request Object and its capabilities.
The things you can do are limitless. For example, you could create an extremely neat paging system, that doesn't require reloading at all. Or you could create a GUI for your PHP application, which behaves exactly like Windows XP. Just think about it!
Be aware though that JavaScript must be enabled for this to work. Without JavaScript this will be completely useless. So make sure your visitors support JavaScript, or create a non-JavaScript version as well.

Dennis Pallett is a young tech writer, with much experience in ASP, PHP and other web technologies. He enjoys writing, and has written several articles and tutorials. To find more of his work, look at his websites at http://www.phpit.net, http://www.aspit.net and http://www.ezfaqs.com