Php Ajax搜索不工作,而XML已在运行?

Php Ajax搜索不工作,而XML已在运行?,php,ajax,xml,Php,Ajax,Xml,我是一个Ajax新手,我试过这本教程,但没用。代码用于搜索 这是脚本search.htm <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>AJAX + MySQL I</title> <script type="text/javascript" src="search.js"></script> </head> <body onload=

我是一个Ajax新手,我试过这本教程,但没用。代码用于搜索

这是脚本search.htm

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>AJAX + MySQL I</title>
<script type="text/javascript" src="search.js"></script>
</head>

<body onload='process()'>

<h1>Student Search</h1>

<form name="form1">
Masukkan Nama Mahasiswa: <input type="text" id="namaMhs" />
</form>

<p><strong>Hasil Pencarian :</strong></p>

<div id="hasil" />

</body>
</html>

AJAX+MySQL-I
学生搜索
玛哈西斯瓦先生:
Hasil Pencarian:

以及JS脚本search.JS

var xmlHttp = createXmlHttpRequestObject();

function createXmlHttpRequestObject()
{
    var xmlHttp;
    if(window.ActiveXObject)
    {
       try
       {
          xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
       }
       catch (e)
       {
          xmlHttp = false;
       }
    }
else
{
    try
    {
       xmlHttp = new XMLHttpRequest();
    }
    catch (e)
    {
         xmlHttp = false;
    }
}

if (!xmlHttp) alert("Obyek XMLHttpRequest tidak dapat dibuat");
else
return xmlHttp;
}

function process()
{
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
    {
       nama = 
          encodeURIComponent(document.getElementById("namaMhs").value);
       xmlHttp.open("GET", "search.php?namaMhs=" + nama, true);
       xmlHttp.onreadystatechange = handleServerResponse;
       xmlHttp.send(null);
    }
    else
    setTimeout('process()', 1000);
}

function handleServerResponse()
{
    if (xmlHttp.readyState == 4)
    {
       if (xmlHttp.status == 200)
       {
          var xmlResponse = xmlHttp.responseXML;
              xmlRoot = xmlResponse.documentElement;

              nimArray = xmlRoot.getElementsByTagName("nim");
              namaMhsArray = xmlRoot.getElementsByTagName("namamhs");
          alamatArray = xmlRoot.getElementsByTagName("alamat");

          if (nimArray.length == 0)
          {
             html = "Data tidak ditemukan";
          }
          else
          {

  // membentuk tabel untuk menampilkan hasil pencarian

          html = "<table border='1'><tr><th>NIM</th><th>Nama 
                      Mhs</th><th>Alamat</th></tr>";

          for (var i=0; i<nimArray.length; i++)
          {
               html += "<tr><td>" + nimArray.item(i).firstChild.data +
                            "</td><td>" +
                          namaMhsArray.item(i).firstChild.data + 
                            "</td><td>" + 
                      alamatArray.item(i).firstChild.data + 
                            "</td></tr>";
          }
          html = html + "</table>";
          }

          document.getElementById("hasil").innerHTML = html;
              setTimeout('process()', 1000);
       }
       else
       {
          alert("Ada masalah dalam mengakses server: " +
          xmlHttp.statusText);
       }
    }
}
var xmlHttp=createXmlHttpRequestObject();
函数createXmlHttpRequestObject()
{
var-xmlHttp;
if(window.ActiveXObject)
{
尝试
{
xmlHttp=新的ActiveXObject(“Microsoft.xmlHttp”);
}
捕获(e)
{
xmlHttp=false;
}
}
其他的
{
尝试
{
xmlHttp=新的XMLHttpRequest();
}
捕获(e)
{
xmlHttp=false;
}
}
如果(!xmlHttp)警报(“Obyek XMLHttpRequest tidak dapat dibuat”);
其他的
返回xmlHttp;
}
函数过程()
{
if(xmlHttp.readyState==4 | | xmlHttp.readyState==0)
{
nama=
encodeURIComponent(document.getElementById(“namaMhs”).value);
open(“GET”、“search.php?namaMhs=“+nama,true”);
xmlHttp.onreadystatechange=handleServerResponse;
xmlHttp.send(空);
}
其他的
setTimeout('process()',1000);
}
函数handleServerResponse()
{
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
var xmlResponse=xmlHttp.responseXML;
xmlRoot=xmlResponse.documentElement;
nimArray=xmlRoot.getElementsByTagName(“nim”);
namaMhsArray=xmlRoot.getElementsByTagName(“namamhs”);
alamatArray=xmlRoot.getElementsByTagName(“alamat”);
if(nimArray.length==0)
{
html=“Data tidak ditemukan”;
}
其他的
{
//这是一个让你的铅笔更便宜的表格
html=“尼玛
MhsAlamat”;
对于(var i=0;i

请帮助我修复此脚本。search.php上的XML已在运行,但我的搜索尚未运行。非常感谢您的帮助。

在文本字段中出现值之前,您正在提交加载的脚本:

<body onload='process()'>

<h1>Student Search</h1>

<form name="form1">
Masukkan Nama Mahasiswa: <input type="text" id="namaMhs" />
</form>

学生搜索
玛哈西斯瓦先生:
您应该向文本字段添加如下值:

<input type="text" value="testname" id="namaMhs" />

或者,作为更好的选择,添加一个提交按钮,不要在加载时运行该功能,而是在提交时运行:

<body>
       <h1>Student Search</h1>

        <form name="form1">
        Masukkan Nama Mahasiswa: <input type="text" id="namaMhs" />
    <input type="button" value="Search" onclick="process();" />
        </form>

学生搜索
玛哈西斯瓦先生:

您的代码可能会有更多甚至更多的问题,我不打算全部看一遍,但这应该会让您有一个好的开始。

Ankur,这是一大堆代码,在现代JS库中只需要一行代码即可完成。我的建议是使用jQuery:
<body>
       <h1>Student Search</h1>

        <form name="form1">
        Masukkan Nama Mahasiswa: <input type="text" id="namaMhs" />
    <input type="button" value="Search" onclick="process();" />
        </form>