Php 自动建议列表框
嗨,我已经设置了以下自动建议框,我想用键盘和鼠标选择输出。我该怎么做 Javascript代码:Php 自动建议列表框,php,javascript,ajax,autocomplete,Php,Javascript,Ajax,Autocomplete,嗨,我已经设置了以下自动建议框,我想用键盘和鼠标选择输出。我该怎么做 Javascript代码: function showResult(string) { if (string.lenght==0) { document.getElementById("livesearch").innerHTML=""; document.getElementById("livesearch").style.border="0px"; ret
function showResult(string) {
if (string.lenght==0) {
document.getElementById("livesearch").innerHTML="";
document.getElementById("livesearch").style.border="0px";
return;
}
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else {
//code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
}
document.getElementById("livesearch").innerHTML = xmlhttp.responseText;
document.getElementById("livesearch").style.border = "1px solid #A5ACB2";
}
xmlhttp.open("GET","test.php?q=" + string,true);
xmlhttp.send();
}
PHP代码:
$xmlDoc=new DOMDocument();
//$xmlDoc->load("test.xml");
$xml = simplexml_load_file("test.xml");
//$x=$xmlDoc->getElementsByTagName('datas');
//get the q parameter from URL
$q = $_GET["q"];
if (strlen($q) > 0) {
foreach ($xml->datas as $a) {
$var = $a->attributes();
$domain = stristr($var,$q);
echo $domain."\n";
echo "<br/>";
}
if (strlen($domain) == 0) {
echo "no results";
}
$xmlDoc=newDOMDocument();
//$xmlDoc->load(“test.xml”);
$xml=simplexml\u加载文件(“test.xml”);
//$x=$xmlDoc->getElementsByTagName('datas');
//从URL获取q参数
$q=$_GET[“q”];
如果(strlen($q)>0{
foreach($xml->data as$a){
$var=$a->attributes();
$domain=stristr($var,$q);
echo$域。“\n”;
回声“
”;
}
if(strlen($domain)==0){
回应“没有结果”;
}
现在一切正常。但我不知道如何与列表交互。最好使用一些适当的自动完成jQuery。您可以通过“自动完成jQuery”进行搜索并找到一个适合您需求的jQuery。如果您想编写自己的代码,那么您可以创建适用于鼠标和键盘事件的函数:
txtSearchBox.keyup(function (e) {
// get keyCode (window.event is for IE)
var keyCode = e.keyCode || window.event.keyCode;
var lastSearch = txtSearchBox.val();
// check for an ENTER
if (keyCode == 13) {
OnEnterClick();
return;
}
// check an treat up and down arrows
if (OnUpDownClick(keyCode)) {
return;
}
// check for an ESC
if (keyCode == 27) {
clearResults();
return;
}
});
然后在“OnInterclick()”、“OnUpDownClick()”和“OnUpDownClick()”中,您可以显示您想要的内容:
function OnUpDownClick(keyCode) {
if(keyCode == 40 || keyCode == 38){
if(keyCode == 38){ // keyUp
// Do something keyUp event
} else { // keyDown
// Do something for keyDown event
}
return true;
} else {
// reset
return false;
}
}
最好使用一些适当的自动完成jQuery。您可以通过“自动完成jQuery”进行搜索,并找到符合您要求的jQuery。如果您想编写自己的代码,则可以制作适用于鼠标和键盘事件的函数:
txtSearchBox.keyup(function (e) {
// get keyCode (window.event is for IE)
var keyCode = e.keyCode || window.event.keyCode;
var lastSearch = txtSearchBox.val();
// check for an ENTER
if (keyCode == 13) {
OnEnterClick();
return;
}
// check an treat up and down arrows
if (OnUpDownClick(keyCode)) {
return;
}
// check for an ESC
if (keyCode == 27) {
clearResults();
return;
}
});
然后在“OnInterclick()”、“OnUpDownClick()”和“OnUpDownClick()”中,您可以显示您想要的内容:
function OnUpDownClick(keyCode) {
if(keyCode == 40 || keyCode == 38){
if(keyCode == 38){ // keyUp
// Do something keyUp event
} else { // keyDown
// Do something for keyDown event
}
return true;
} else {
// reset
return false;
}
}
怀疑这是问题所在,但您在
string.lenght
中拼写“length”错误,我建议您使用jquery的autocomplete插件(),该插件可从jqueryui.com获得,而不是重新发明轮子。怀疑这是问题所在,但您拼写了“length”string.lengh中的错误
我建议您使用jquery的自动完成插件()可从jqueryui.com获得,而不是重新发明轮子。非常感谢你的答案,我将研究它们并尝试。我能够找到一个好的例子并使用它,尽管它有一些问题。对于其他阅读本文的人,请访问此网页。感谢所有人的回答谢谢你的答案,我将研究它们并我找到了一个很好的例子,尽管它有一些问题。其他阅读本文的人,请访问此网页。谢谢大家的回答