AJAX与PHP(一)

今天开始学习AJAX和PHP的结合~很久之前就买了关于AJAX的书------<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文件:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " [url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url] ">
<html xmlns="
[url]http://www.w3.org/1999/xhtml[/url] ">
  <head>
    <title>AJAX with PHP: Quickstart</title>
    <script type="text/javascript" src="quickstart.js"></script>
  </head>
  <body onload='process()'>
    Server wants to know your name:
    <input type="text" id="myName" />
    <div id="divMessage" />
  </body>
</html>


   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 = '<i>' + helloMessage + '</i>';
      // 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文件:
     <?php
// we'll generate XML output
header('Content-Type: text/xml');
// generate XML header
echo '<?xml version="1.0" encoding="UTF-8" standal?>';
// create the <response> element
echo '<response>';

// 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 <response> element
echo '</response>';
?>

你可能感兴趣的:(Ajax,PHP,职场,休闲)