您好我想使用自动完成功能,但结果是重复的。抱歉我的英语不好。首先我的mysql表名为“ firma ”
Example:
id | etiket
1 | tag1,tag2,tag3,tag4,tag5,Merkez
2 | tag1,tag2,tag6,Merkez
3 | tag1,tag3,tag4,tag10,Merkez
...............................
请注意:Merkez的相同的标签与逗号分开。
search.php文件
$term=$_GET['term'];
$req = "SELECT etiket FROM firma WHERE etiket LIKE '%".$term."%'";
$query = mysql_query($req);
while($row = mysql_fetch_array($query))
{
$degisken_array = explode(',',$row['etiket']);
foreach($degisken_array as $deger)
{
$deger = trim($deger);
$results[] = array('label' => $deger);
}
}
echo json_encode($results);
文件的Html部分..
<div class="ui-widget">
<div class="cerceve">
<input style="width:550px" id="birds" type="text" <?php if(isset($_GET['kelime'])) {
if($_GET["kelime"]!='') { echo "class='arasecili'"; } } ?> name="kelime" placeholder="Örn: > Firma, kurum, işletme adı.. " >
</div>
</div>
Javascript part ..
<script>
$(function() {
var cache = {};
$( "#birds" ).autocomplete({
minLength: 2,
source: function( request, response ) {
var term = request.term;
if ( term in cache ) {
response( cache[ term ] );
return;
}
$.getJSON( "search.php", request, function( data, status, xhr ) {
cache[ term ] = data;
response( data );
});
}
});
});
</script>
当我在搜索框中输入“Merkez”时,输出就像你在图像中看到的那样,Merkez有3个结果,我怎样才能为每个标签只获得一次
您可以在此处查看结果和问题。
答案 0 :(得分:0)
您可以在$ results数组上使用array_unique()函数。这应该删除双打。 http://de3.php.net/manual/de/function.array-unique.php
答案 1 :(得分:0)
$arr = ['0','0','1','2',...
$arrUnique = array_values(array_unique($arr));
因为只有带有json_encode的array_unique才会输出
{"0":"0","1":"1","2":"2",...
但是array_values将输出
['0','1','2',...