簡體   English   中英

防止jQuery UI自動完成顯示類似結果

[英]Prevent jQuery UI Autocomplete from showing similar results

我正在使用jQuery UI自動完成功能來顯示數據庫上可用的結果。 我的網站用於房地產列表,我在搜索表單上的“城市”字段下使用該網站,因此,如果在同一城市下列出500個屬性,則該字段將顯示該城市的名稱500次。

有什么辦法可以阻止此結果,所以同一結果只能顯示一次?

這是我的PHP文件:

<?php
$mysqli = new mysqli('localhost', 'aliicomb_joombd', 'xxxxxxxx', 'aliicomb_joombd');
$text = $mysqli->real_escape_string($_GET['term']);

$query = "SELECT field_63 FROM jbd_joomd_type15 WHERE field_63 LIKE '%$text%' ORDER BY field_63 ASC";
$result = $mysqli->query($query);
$json = '[';
$first = true;
while($row = $result->fetch_assoc())
{
    if (!$first) { $json .=  ','; } else { $first = false; }
    $json .= '{"value":"'.$row['field_63'].'"}';
}
$json .= ']';
echo $json;
?>

而我的Javascript:

<script type="text/javascript">
$(document).ready(function()
{
    $('#field_63').autocomplete(
    {
        source: "city.php",
        minLength: 3
    });

});

</script>

您可以在查詢中使用DISTINCT關鍵字從數據庫中獲取不同的值:

$query = "SELECT DISTINCT field_63 FROM jbd_joomd_type15 WHERE field_63 LIKE '%$text%' ORDER BY field_63 ASC";

正如IvanHušnjak所建議的,您可以嘗試

$query = "SELECT DISTINCT field_63 FROM jbd_joomd_type15 WHERE field_63 LIKE '%$text%' ORDER BY field_63 ASC";

要么

$query = "SELECT TOP 1 field_63 FROM jbd_joomd_type15 WHERE field_63 LIKE '%$text%' ORDER BY field_63 ASC";

從數據庫僅返回1個結果

請注意,如果存在多行,其中field_63類似於$ text,DISTINCT仍可以返回多個結果

暫無
暫無

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

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