簡體   English   中英

jQuery自動建議

[英]jQuery Autosuggest

我對jQuery很陌生 ,因此在這里需要一些幫助:我剛剛開始使用jQuery Autosuggest插件 ,因為我確實會對我的網站有所幫助。 我下載了所有文件,將它們鏈接到我的網站,並使用此文件將輸入設置為自動建議:

<script>
$(document).ready(function(){
    $("#postna").autoSuggest("get.php");
})
</script>

現在這部分工作正常,它可以更改輸入框的樣式。 對於get.php文件,我幾乎從插件站點復制了它,但是我對其進行了更改,因此它將為我提供更好的服務:

<?php
require_once 'includes/mysql.class.php';

$input = $_GET['q'];
$data = array();

$qu = new MySQL();
$qu->rQuery("SELECT id,name FROM cities WHERE name LIKE '$input%'");
$data = $qu->getRows();
foreach($data as $a){
    $json = array();
    $json['value'] = $a['id'];
    $json['name'] = $a['name'];
    $data[] = $json;
}
header("Content-type: application/json");
echo json_encode($data);
?> 

現在的問題是,當我輸入文本時,它返回“找不到結果”,但是如果我轉到/get.php?q=velenje(velenje是一個城市的名稱),它將回顯此信息:

{"id":"681","name":"Velenje"}

關於我可能做錯了什么建議?

您正在將MySQL查詢的結果拖入$data數組中,然后繼續在循環中編輯該數組。 嘗試這個:

$data = array();
$qu = new MySQL();
$qu->rQuery("SELECT id,name FROM cities WHERE name LIKE '$input%'");
$rows = $qu->getRows();
foreach($rows as $a){
    $json = array();
    $json['value'] = $a['id'];
    $json['name'] = $a['name'];
    $data[] = $json;
}    
header("Content-type: application/json");
echo json_encode($data);

編輯 :我忘了注意到您似乎沒有對輸入內容進行凈化... 小鮑比表向我們展示了為什么我們不應該這樣做。

在客戶端使用腳本的完整路徑:

<script>
$(document).ready(function(){
    $("#postna").autoSuggest("http://yoursite.com/get.php");
})
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM