2013-01-16 100 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請求中獲得預期的數據.. –