2016-07-27 3 views
0

私がしたいことは、jQueryUIの機能によってオートコンプリートを使用して結果を分類することです。いくつかのグーグルなどの後、私はそれがinbuilt関数(http://jqueryui.com/demos/autocomplete/#categories)を持っていることがわかりましたが、例はローカルデータソース(javascriptの配列)のみです。私はリモートデータソースを扱っています。 私のコードはここにPHP mysqlのカテゴリでオートコンプリートが機能しない

<script> 
$(function() { 
$.widget("custom.catcomplete", $.ui.autocomplete, { 
_renderMenu: function(ul, items) { 
    var self = this, 
     currentCategory = ""; 
    $.each(items, function(index, item) { 
     if (item.category != currentCategory) { 
      ul.append("<li class='ui-autocomplete-category'>" + item.category + "</li>"); 
      currentCategory = item.category; 
     } 
     self._renderItem(ul, item); 
    }); 
} 
}); 
$("#search").catcomplete({ 
    delay:0, 
    source: "search.php", 
    select: function(event, ui){ 
    alert(ui.item.label); 
} 
}); 
}); 
</script> 
</head> 
<body> 
<label for="search">Search: </label> 
<input id="search"> 
</body> 

あるsearch.php

<?php 
$conn = mysqli_connect("localhost","root","","test") or die(mysqli_error()); 
$searchTerm = $_GET['term']; 
$sql = "select * from country_ref_table where country_code LIKE '%".$searchTerm."%' ORDER BY country_code ASC"; 
$result = mysqli_query($conn,$sql) or die(mysqli_error($conn)); 
$data = []; 
while($row = mysqli_fetch_array($result)) 
    { 
    $data[] = $row['country_code']; 
    $data[] = $row['country']; 
    } 
echo json_encode($data); 
    ?> 
+0

あなたの質問は何ですか? –

+0

クエリに$ searchTermを追加するのを忘れてしまった。 –

答えて

0
$searchTerm = $_GET['term']; 
$sql = "select * from country_ref_table"; 

は、このようなデータを使用$ SQLで

$sql = "select * from country_ref_table where `term` LIKE '%".$searchTerm ."%'"; 

それを追加します:

を210
$data=array(); 
while($row = mysqli_fetch_array($result)) 
    { 
    $data[]['id'] = $row['country_code']; 
    $data[]['category'] = $row['country']; 
    } 
echo json_encode($data); 
+0

私はまだそのはDBであなたのカテゴリの列名が何であるかを – parvez

+0

を動作しないコードbuthを編集した、条件 –

+0

catagory列名が 'country' – parvez

0

の代わりに:

$searchTerm = $_GET['term']; 
$sql = "select * from country_ref_table"; 

あなたは多少のように、クエリで$searchTermを含める必要があります。

$searchTerm = $_GET['term']; 

$sql = "select * from country_ref_table WHERE `columnTerm` LIKE '%".$searchTerm ."%' "; 

OR

$sql = "select * from country_ref_table WHERE `columnTerm` = '$searchTerm' "; 
+0

コードを編集しましたが、まだ機能していません – parvez

関連する問題