为什么我的AJAX代码无法从php获取数据?

时间:2015-03-24 18:31:21

标签: javascript php html ajax xml

我试图查看我输入的特定姓名是否在列表中。我想要XML格式的响应。我尽我所能但却没有得到结果。 (我顺便使用了Firefox)。

HTML

<html>
<head>
<script type="text/javascript" src="javer.js"></script>
</head>
<body>
<h1>Testing ajax!</h1>
<form onsubmit="changer('inputing')">
enter name <input type="text" id="inputing" />
<input type="submit" />
</form>
<p id="ch">enter name to check</p>
</body>
</html>

JAVASCRIPT

function changer(a) {
var mo = new XMLHttpRequest();
var qry = document.getElementById(a).value;
mo.onreadystatechange = function() {
if(mo.readyState == 4 && mo.status == 200) {
var res = mo.responseXML;
document.getElementById("ch").innerHTML = res.firstChild.nodeValue;
}
}
mo.open("GET", "appr.php?name=" + qry, true);
mo.send(null);
}

PHP

<?php

header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';

echo "<cover>";
$b = array("sam", "norton", "maya", "sijosh", "noor", "timothy");
$c = $_GET["name"];

if(in_array($c, $b)) {
echo "he is here";
}
else { echo "sorry... we dont know him"; }
echo "</cover>";

?>

2 个答案:

答案 0 :(得分:0)

您可能不会看到正在发生的事情,因为表单也会以非ajax / regular方式提交。

您可以使用例如:

来避免这种情况
<form action='' onsubmit="changer('inputing'); return false;">

虽然理想情况下你会完全摆脱内联的javascript并处理javascript事件处理程序中的所有内容。

答案 1 :(得分:0)

最后我明白了!有两个问题。第一个是我每次提交表单时页面都会刷新,正如你们所说的那样。我纠正了。第二个问题是解析XML数据。我将XML转移到变量'res',但之后我必须从XML获取'documentElement'。所以我添加了另一个变量'xmlde'。

xmlde = res.documentElement;

然后,

document.getElementById("ch").innerHTML = xmlde.firstChild.nodeValue;

问题解决了!