2013-01-16 60 views
0

我有一个搜索建议代码,我已经从我之前设计的网站之一采取。我将完整的代码复制到我的新网站,但知道搜索建议由于某种原因不起作用!搜索建议不起作用

请看看我的代码:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.js"></script> 
<script type="text/javascript" src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script> 
<!--search suggestions--> 
<script type="text/javascript"> 
function lookup(inputString) { 
if(inputString.length == 0) 
{ 
$('#suggestions').hide(); 
} 
else 
{ 
$.post("suggest.php", {queryString: ""+inputString+""}, function(data){ 
if(data.length > 0) { 
$('#suggestions').show(); 
$('#autoSuggestionsList').html(data); 
} 
}); 
} 
} 
function fill(thisValue) { 
$('#inputString').val(thisValue); 
setTimeout("$('#suggestions').hide();", 200); 
} 
function outoffocus() { 
setTimeout("$('#suggestions').hide();", 200); 
} 
</script> 

我的PHP:

<?php 
if(isset($_POST['inputString'])) 
{ 
    $inputString = safe($_POST['inputString']); 
    if(mb_strlen($inputString) > 0) 
    { 
    $query = $db->query("SELECT title FROM table WHERE title LIKE '$inputString%' LIMIT 5"); 
    if($db->num_rows($query) > 0) 
    { 
     while($result = $db->fetch_array($query)) 
     { 
      echo "<li onClick=\"fill('".$result['title']."');\"><a href='".$config['site_dir']."/".$result['title']."/'>".$result['title']."</a></li>"; 
     } 
    } 
    else 
    { 
     echo "NOTHING HERE GO AWAY"; 
    } 
    } 
} 
?> 

我已经检测了两个PHP文件和SQL STATMENT。而且他们俩似乎都有效。

我觉得问题在HTML和jQuery

奠定

这里是我的HTML

<form id="search" action="{$url}/search.php" method="get"> 
<input type="text" name="search" id="inputString" onkeyup="lookup(this.value);" onblur="outoffocus()" onfocus="lookup(this.value);"/> 
<input type="submit" value="&nbsp;" /> 
<div class="suggestionsBox" id="suggestions" > 
<div class="suggestionList" id="autoSuggestionsList"> 
&nbsp; 
</div> 
</div> 
</form> 

两件事情,你应该回答问题前知道: 我有一个链接到建议的文件。 PHP连接到SQL ..所以不应该是一个问题。 我放在那里的查询与我在原始文件中的查询不完全相同,所以我可以告诉你这个问题不在MYSQL中。它在我给出的代码中的某处。

+0

我给一个字符串'data'直接代替你得到它通过$。员额(),那么其他的代码工作正常。所以我认为在帖子中肯定有一些错误。 – pktangyue

回答

1

尝试改变下列功能:

function fill(thisValue) { 
$('#inputString').val(thisValue); 
setTimeout("$('#suggestions').hide();", 200); 
} 
function outoffocus() { 
setTimeout("$('#suggestions').hide();", 200); 
} 

function fill(thisValue) { 
    $('#inputString').val(thisValue); 
    setTimeout(function() { 
    $('#suggestions').hide(); }, 200); 
} 
function outoffocus() { 
    setTimeout(function() { 
    $('#suggestions').hide();}, 200); 
} 
+0

结果没有显示!我没有达到我可以填写输入结果的地方.. 我不知道为什么这些建议没有显示! – shnisaka

+0

@shnisaka尝试console.log(数据);在你的post回调函数中,并检查你是否真的从POST请求中获得预期的数据.. –