2011-06-02 34 views
0

我有一個PHP搜索建議腳本,它使用MySQL數據庫作爲其後端和jQuery將內容推送到搜索框頁面。 PHP目前在suggest.php中,我的搜索框在index.php上。我想將來自suggest.php的PHP腳本放入index.php腳本代碼中,但它似乎不起作用。爲什麼會這樣呢?將PHP腳本與另一個PHP文件,jQuery和HTML結合起來

這裏是我的suggest.php代碼:

<?php 

$database=new mysqli('localhost','username','password','database'); 

if(isset($_POST['query'])){ 
$query=$database->real_escape_string($_POST['query']); 
      if(strlen($query)>0){ 
       $suggestions=$database->query("SELECT name, value FROM search WHERE name LIKE '%".$query."%' ORDER BY value DESC LIMIT 5"); 
       if($suggestions){ 
        echo '<ul id="suggest">'; 
        while($result=$suggestions->fetch_object()){ 
         echo '<li>'.$result->name.'</li>';      
        } 
        echo '</ul>'; 
       } 
      } 
     } 
?> 

這裏是我的index.php代碼:

<script type='text/javascript' src='js/jquery.js'></script> 
<script type='text/javascript'>function lookup(a){if (a.length==0){$("#suggestions").hide();} else {$.post("suggest.php",{query:"" + a + ""},function (b){$("#suggestions").html(b).show();})}};</script> 

<form id='search' method='post'> 
<input type='text' id='query' onkeyup='lookup(this.value);'> 
<div id='suggestions'></div> 
</form> 

回答

0

它看起來像的index.php創建您的用戶使用界面,但suggest.php返回查找建議。當你試圖獲得查找建議時,你不希望另一個界面副本回來,所以你不能通過index.php來代替提示.php

另外,index.php並不是真的一個PHP文件,至少從你發佈的內容。它可能是index.html

0

一旦PHP頁面發送出去,如果沒有頁面刷新,沒有辦法實現任何進一步的PHP代碼,如果@bbg說的是真的。我建議你使用AJAX,它可以發送請求以獲取在index.php上執行的suggest.php腳本。我也建議你將代碼放在函數中的suggest.php中(它們使代碼更漂亮,我的意見)。

相關問題