今天开始学习AJAX和PHP的结合~很久之前就买了关于AJAX的书------~但是一直都没有时间看~国庆回家,就开始学习AJAX~
javascript一直都有看~所以觉得不是很难,尤其是DOM那里,看多了,就觉得容易理解了~而事件那些,就和VC++或者C++ Builder中的事件处理是类似的.但是js有个我觉得很不好的地方,没有找得到一个很好的编译器来写.有时候打错了代码,要靠运行IE的时候才能知道错哪里~这样效率非常的低.虽然说这样可以给压力自己,要写出正确的代码,但是有时候打错了,就真的很浪费时间~今天中午师兄介绍了一个JS的IDE~确实好用~名字叫Aptana.拥有类似VS的自动填充功能,而且又说明了使用的DOM的哪个级的~以及是否支持IE或者Fire Fox~这样写起代码来~比较爽~可是我今天对着书打了一下午的代码~还是有些显示不出例子中的效果~可能是因为JS不是强类型的语言,所以导致了打错变量名称,产生了新的变量,但是却没有出错.
今天主要学习的是javascript下灵活的客户端技术.主要练习了JS事件和DOM.经过今天的学习,才知道原来那个 XMLHttpRequest对象就是IE6或者更低版本的IE里面的ActiveXObject("Microsoft.XMLHttp").在IE6或者更低版本的IE中,XMLHttpRequest是ActiveX的控件,而在其他浏览器或者在IE7中,XMLHttpRequest作为本地对象.
Xmlhttp=new ActiveXObject("Microsoft.XMLHttp");
与
Xmlhttp=new XMLHttpRequest();
是同等效果的代码.
而后,又学习了CSS的样式表架构.
今天,就书上例子,自己打了一个AJAX程序
HTML文件:
[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url] ">
[url]http://www.w3.org/1999/xhtml[/url] ">
AJAX with PHP: Quickstart
Server wants to know your name:
JS文件:
// stores the reference to the XMLHttpRequest object
var xmlHttp = createXmlHttpRequestObject();
// retrieves the XMLHttpRequest object
function createXmlHttpRequestObject()
{
// will store the reference to the XMLHttpRequest object
var xmlHttp;
// if running Internet Explorer
if(window.ActiveXObject)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
xmlHttp = false;
}
}
// if running Mozilla or other browsers
else
{
try
{
xmlHttp = new XMLHttpRequest();
}
catch (e)
{
xmlHttp = false;
}
}
// return the created object or display an error message
if (!xmlHttp)
alert("Error creating the XMLHttpRequest object.");
else
return xmlHttp;
}
// make asynchronous HTTP request using the XMLHttpRequest object
function process()
{
// proceed only if the xmlHttp object isn't busy
if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
{
// retrieve the name typed by the user on the form
name = encodeURIComponent(document.getElementById("myName").value);
// execute the quickstart.php page from the server
xmlHttp.open("GET", "quickstart.php?name=" + name, true);
// define the method to handle server responses
xmlHttp.onreadystatechange = handleServerResponse;
// make the server request
xmlHttp.send(null);
}
else
// if the connection is busy, try again after one second
setTimeout('process()', 1000);
}
// executed automatically when a message is received from the server
function handleServerResponse()
{
// move forward only if the transaction has completed
if (xmlHttp.readyState == 4)
{
// status of 200 indicates the transaction completed successfully
if (xmlHttp.status == 200)
{
// extract the XML retrieved from the server
xmlResponse = xmlHttp.responseXML;
// obtain the document element (the root element) of the XML structure
xmlDocumentElement = xmlResponse.documentElement;
// get the text message, which is in the first child of
// the the document element
helloMessage = xmlDocumentElement.firstChild.data;
// update the client display using the data received from the server
document.getElementById("divMessage").innerHTML = '' + helloMessage + '';
// restart sequence
setTimeout('process()', 1000);
}
// a HTTP status different than 200 signals an error
else
{
alert("There was a problem accessing the server: " + xmlHttp.statusText);
}
}
}
PHP文件:
// we'll generate XML output
header('Content-Type: text/xml');
// generate XML header
echo '';
// create the element
echo '';
// retrieve the user name
$name = $_GET['name'];
// generate output depending on the user name received from client
$userNames = array('CRISTIAN', 'BOGDAN', 'FILIP', 'MIHAI', 'YODA');
if (in_array(strtoupper($name), $userNames))
echo 'Hello, master ' . htmlentities($name) . '!';
else if (trim($name) == '')
echo 'Stranger, please tell me your name!';
else
echo htmlentities($name) . ', I don\'t know you!';
// close the element
echo ' ';
?>
javascript一直都有看~所以觉得不是很难,尤其是DOM那里,看多了,就觉得容易理解了~而事件那些,就和VC++或者C++ Builder中的事件处理是类似的.但是js有个我觉得很不好的地方,没有找得到一个很好的编译器来写.有时候打错了代码,要靠运行IE的时候才能知道错哪里~这样效率非常的低.虽然说这样可以给压力自己,要写出正确的代码,但是有时候打错了,就真的很浪费时间~今天中午师兄介绍了一个JS的IDE~确实好用~名字叫Aptana.拥有类似VS的自动填充功能,而且又说明了使用的DOM的哪个级的~以及是否支持IE或者Fire Fox~这样写起代码来~比较爽~可是我今天对着书打了一下午的代码~还是有些显示不出例子中的效果~可能是因为JS不是强类型的语言,所以导致了打错变量名称,产生了新的变量,但是却没有出错.
今天主要学习的是javascript下灵活的客户端技术.主要练习了JS事件和DOM.经过今天的学习,才知道原来那个 XMLHttpRequest对象就是IE6或者更低版本的IE里面的ActiveXObject("Microsoft.XMLHttp").在IE6或者更低版本的IE中,XMLHttpRequest是ActiveX的控件,而在其他浏览器或者在IE7中,XMLHttpRequest作为本地对象.
Xmlhttp=new ActiveXObject("Microsoft.XMLHttp");
与
Xmlhttp=new XMLHttpRequest();
是同等效果的代码.
而后,又学习了CSS的样式表架构.
今天,就书上例子,自己打了一个AJAX程序
HTML文件:
[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url] ">
[url]http://www.w3.org/1999/xhtml[/url] ">
Server wants to know your name:
JS文件:
// stores the reference to the XMLHttpRequest object
var xmlHttp = createXmlHttpRequestObject();
// retrieves the XMLHttpRequest object
function createXmlHttpRequestObject()
{
// will store the reference to the XMLHttpRequest object
var xmlHttp;
// if running Internet Explorer
if(window.ActiveXObject)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
xmlHttp = false;
}
}
// if running Mozilla or other browsers
else
{
try
{
xmlHttp = new XMLHttpRequest();
}
catch (e)
{
xmlHttp = false;
}
}
// return the created object or display an error message
if (!xmlHttp)
alert("Error creating the XMLHttpRequest object.");
else
return xmlHttp;
}
// make asynchronous HTTP request using the XMLHttpRequest object
function process()
{
// proceed only if the xmlHttp object isn't busy
if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
{
// retrieve the name typed by the user on the form
name = encodeURIComponent(document.getElementById("myName").value);
// execute the quickstart.php page from the server
xmlHttp.open("GET", "quickstart.php?name=" + name, true);
// define the method to handle server responses
xmlHttp.onreadystatechange = handleServerResponse;
// make the server request
xmlHttp.send(null);
}
else
// if the connection is busy, try again after one second
setTimeout('process()', 1000);
}
// executed automatically when a message is received from the server
function handleServerResponse()
{
// move forward only if the transaction has completed
if (xmlHttp.readyState == 4)
{
// status of 200 indicates the transaction completed successfully
if (xmlHttp.status == 200)
{
// extract the XML retrieved from the server
xmlResponse = xmlHttp.responseXML;
// obtain the document element (the root element) of the XML structure
xmlDocumentElement = xmlResponse.documentElement;
// get the text message, which is in the first child of
// the the document element
helloMessage = xmlDocumentElement.firstChild.data;
// update the client display using the data received from the server
document.getElementById("divMessage").innerHTML = '' + helloMessage + '';
// restart sequence
setTimeout('process()', 1000);
}
// a HTTP status different than 200 signals an error
else
{
alert("There was a problem accessing the server: " + xmlHttp.statusText);
}
}
}
PHP文件:
// we'll generate XML output
header('Content-Type: text/xml');
// generate XML header
echo '';
// create the
echo '
// retrieve the user name
$name = $_GET['name'];
// generate output depending on the user name received from client
$userNames = array('CRISTIAN', 'BOGDAN', 'FILIP', 'MIHAI', 'YODA');
if (in_array(strtoupper($name), $userNames))
echo 'Hello, master ' . htmlentities($name) . '!';
else if (trim($name) == '')
echo 'Stranger, please tell me your name!';
else
echo htmlentities($name) . ', I don\'t know you!';
// close the
echo '
?>