Я нашел хороший учебник: учебник
но он не работает локально. Проблема в том, что responseetext возвращает весь мой PHP-код. Я дважды нажимаю на свой ajaxclock.html и использую Firefox. Удивительно, но он работает на сервере.
Вот код: ajaxclock.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>AJAX Tutorial</title> </head> <body> <div id="time"></div> <button onclick="getTime();">Aktualisieren</button> <script type="text/javascript" src="script.js"></script> </body> </html>
script.js
var req = getXmlHttpRequestObject(); window.onload = getTime(); function getXmlHttpRequestObject() { if(window.XMLHttpRequest) { return new XMLHttpRequest(); } else if(window.ActiveXObject) { return new ActiveXObject("Microsoft.XMLHTTP"); } else { alert('Ajax funktioniert bei Ihnen nicht!'); } } function getTime() { if(req.readyState == 4 || req.readyState == 0) { req.open('GET', 'ajaxclock.php', true); req.setRequestHeader("Content-Type","text/plain"); req.onreadystatechange = setMessage; req.send(null); } } function setMessage() { if(req.readyState == 4) { var response = eval('(' + req.responseText+ ')'); document.getElementById('time').innerHTML = response.time; } }
ajaxclock.php
<?php echo '{"time": "'.date("H:i:s").'"}'; ?>
Удивительно, но он работает на сервере.
PHP – это серверная технология. Он будет работать только на сервере (в частности, на сервере, настроенном на запуск программ PHP).
Если вы используете его без такого сервера, то ничего не будет выполнять PHP, и он будет доставлен в браузер в исходном состоянии.