2016-02-21 39 views
0

我在使用數據庫中的數據完成Jquery中的自動完成功能時遇到了麻煩。每當我輸入一些東西,我總是會得到'沒有找到結果'的信息。我希望它在用戶輸入時顯示國家名稱。來自數據庫國家的jquery自動完成

jquery.php

<?php 
require "database/database.php"; 
session_start(); 
?> 
<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <meta charset="utf-8" /> 
     <title></title> 
     <link type="text/css" rel="stylesheet" href="CSS/style.css"> 
     <script type="text/javascript" src="jquery/jquery-1.11.3.min.js"></script> 
     <script src="jquery/jquery-ui.min.js"></script> 
    </head> 
    <body> 
     <form action="" method="post"> 
      <p><label>Country:</label><input type='text' name='country' value='' class='auto'></p> 
     </form> 

     <script type="text/javascript"> 
      $(document).ready(function() { 
       $('.auto').autocomplete({ 
        source:"suggested.php", 
        MinLength: 2 
       }); 
      }); 

     </script> 
    </body> 
</html> 

這是我的suggested.php頁:

<?php 
require "database/database.php"; 
$term = trim(strip_tags($_GET['term'])); 
$data = mysql_query("SELECT * FROM countries WHERE countryname LIKE '%".$term."%'"); 
    while($row = mysql_fetch_assoc($data)) { 
     $data[] = array(
     'label' = $row['countryname'], 
     'value' = $row['countryname'] 
     ); 
    } 
    echo json_encode($data); 
    flush(); 
} 
?> 

在我有一個表命名爲國家數據庫,並在其中countryid,COUNTRYNAME和countryflag。我只需要提取countryname列。 我試過使用$ _GET ['term']和$ _REQUEST ['term']。 我試過不同的教程,但他們都沒有人似乎工作。 如果您有任何建議,請告訴我。 謝謝

回答

0

如果您每次鍵入時運行查詢,都會延遲執行,因爲您可以輸入值作爲查詢條件值! I can give you some I tested logic is run your query first when document is loaded and store as a json data type,then you can set source data in autocomplete

這可以通過SQL查詢運行

 <form action="" method="post"> 
     <p><label>Country:</label><input type='text' name='country' value='' class='auto'></p> 
    </form> 

    <script type="text/javascript"> 
     $(document).ready(function() { 
      var source = []; 
      $.ajax({ 
        url : "suggested.php", 
        data : "GET", 
        dataType : "json", 
        success : function(data){ 
         for(var i in data){ 
          source.push(data[i]); 
         } 
        } 
       }); 
      $('.auto').autocomplete({ 
       source: source, 
       MinLength: 2 
      }); 
     }); 

    </script> 

suggested.php減少你的頁面的延遲響應時間

<?php 
    require "database/database.php";  
    $data = mysql_query("SELECT * FROM countries"); 
    $result = array(); 
    while($row = mysql_fetch_assoc($data)) { 
    $result[] = array(
    'label' = $row['countryname'], 
    'value' = $row['countryname'] 
    ); 
} 
echo json_encode($result); 
flush(); 
} 
?> 
+0

喂大衛,感謝您的建議。但是我仍然得到相同的結果('沒有找到結果')。 – davidb

+0

你的json數據格式是什麼?你能提供嗎 –

+0

如何以及在哪裏可以檢查? – davidb

相關問題