gpt4 book ai didi

php - Ajax 搜索不工作而 XML 已经在运行?

转载 作者:数据小太阳 更新时间:2023-10-29 02:40:47 25 4
gpt4 key购买 nike

我是 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>

和 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);
}
}
}

和 php 中的最后一个脚本 search.php

<?php
header('Content-Type: text/xml');
echo '<hasil>';
$namaMhs = $_GET['namaMhs'];
mysql_connect("localhost","root","*******");
mysql_select_db("mahasiswa");
$query = "SELECT * FROM mhs WHERE namamhs LIKE '%$namaMhs%'";
$hasil = mysql_query($query);
while ($data = mysql_fetch_array($hasil))
{
echo "<mhs>";
echo "<nim>".$data['NIM']."</nim>";
echo "<namamhs>".$data['NAMAMHS']."</namamhs>";
echo "<alamat>".$data['ALAMAT']."</alamat>";
echo "</mhs>";
}
echo '</hasil>';
?>

请帮我修复这个脚本。 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>

您的代码可能存在更多甚至更多问题,我没有仔细查看所有问题,但这应该能让您有个好的开始。

关于php - Ajax 搜索不工作而 XML 已经在运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21980851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com