这是一个类似谷歌建议的脚本。Javascript。通过AJAX在页面中传递输入变量
我重写了AJAX调用代码,将其分解为多个函数,看起来这是一个更好的跨浏览器/可用性方法。现在我需要将从输入#search_text读取的输入变量传递给一个php文件,我从数据库中实际获取数据。
现在我只需要传递search_text并用echo $ _GET ['search_text']显示它; 有人可以帮我吗?
这里是脚本
<script type="text/javascript">
/*note xmlHttp needs to be a global variable. Because it is not it requires that function handleStateChange to pass the xmlHttp
handleStateChange is written in such a way that is expects xmlHttp to be a global variable.*/
function startRequest(getURL){
var xmlHttp = false;
xmlHttp = createXMLHttpRequest();
//xmlHttp.onreadystatechange=handleStateChange;
xmlHttp.onreadystatechange=function(){handleStateChange(xmlHttp);}
xmlHttp.open("GET", getURL ,true);
xmlHttp.send();
}
function createXMLHttpRequest() {
var _msxml_progid = [
'Microsoft.XMLHTTP',
'MSXML2.XMLHTTP.3.0',
'MSXML3.XMLHTTP',
'MSXML2.XMLHTTP.6.0'
];
//req is assiqning to xmlhttp through a self invoking function
var xmlHttp = (function() {
var req;
try {
req = new XMLHttpRequest();
} catch(e) {
var len = _msxml_progid.length;
while(len--) {
try {
req = new ActiveXObject(_msxml_progid[len]);
break;
} catch(e2) { }
}
} finally {
return req;
}
}());
return xmlHttp;
}
//handleStateChange is written in such a way that is expects xmlHttp to be a global variable.
function handleStateChange(xmlHttp){
if(xmlHttp.readyState == 4){
if(xmlHttp.status == 200){
//alert(xmlHttp.status);
//alert(xmlHttp.responseText);
document.getElementById("results").innerHTML = xmlHttp.responseText;
}
}
}
function suggest() {
startRequest("ajax-submit.php");
}
</script>
<body>
<form action="" name="search" id="search">
<input type="text" name="search_text" id="search_text" onkeydown="suggest();" />
</form>
<div id="results" style="background:yellow"></div>
</body>
和PHP文件是:
<?php
echo 'Something';//'while typing it displays Something in result div
//echo $_GET['search_text'];
?>
感谢
你给了一个脚本,并寻求帮助,但你没有指出实际上错误。 FWIW,我对你的建议是抛弃所有这些,并选择任何已经为你做到这一点的jQuery/Prototype/YUI。如果你花时间重新发明车轮,你永远不会制造汽车。 –