使用自动完成jquery / ajax从php数组中获取数据值

时间:2015-06-02 12:46:15

标签: php jquery mysql ajax autocomplete

我尝试使用来自" devbridge autocomplete"的插件:https://www.devbridge.com/sourcery/components/jquery-autocomplete/ 我想从search.php页面获取3个值(而不仅仅是1)。 它适用于"价值"但不是" data1"和" data2" (每个结果= null)

我的jQuery代码:

$('#search-adress').autocomplete({
serviceUrl: 'search.php',
dataType: 'json',
onSelect: function (value,data1,data2) {
        alert('You selected: ' + value + ', ' + data1 + ', ' + data2);
    }
});

我的搜索页面:

$term=$_GET['query'];
$query = mysql_query("select distinct adress,id,city from myadresstable where (adress like '%{$term}%') order by adress limit 10 ");
if (mysql_num_rows($query))
{
    while($row = mysql_fetch_assoc($query))
    {
        $reply['suggestions'][] = ''.utf8_encode($row['nom_voie']).'';
        $reply['data1'][] = ''.utf8_encode($row['id']).'';
        $reply['data2'][] = ''.utf8_encode($row['city']).'';
    }
 echo json_encode($reply);
}

感谢您帮助我:)

2 个答案:

答案 0 :(得分:0)

你可以这样改变一下php数组:

$term=$_GET['query'];
$query = mysql_query("select distinct adress,id,city from myadresstable where (adress like '%{$term}%') order by adress limit 10 ");
if (mysql_num_rows($query))
{
   $arr = array();
   while($row = mysql_fetch_assoc($query))
   {
     $reply['suggestions'] = utf8_encode($row['nom_voie']);
     $reply['data'] = utf8_encode($row['id']);
     $reply['value'] = utf8_encode($row['city']);
     $arr[] = $reply;
   }
   echo json_encode($arr);
}

在你的jquery代码中:

 $(function(){
 $('#autocomplete').autocomplete({
    lookup: datos,
    onSelect: function (suggestion) {
        console.log(suggestion);
         alert('You selected: ' + suggestion.value + ', ' + suggestion.data + ', ' + suggestion.nom_voie);
    }
  });
});

示例小提琴:https://jsfiddle.net/robertrozas/n6oLLfmc/

  • 尝试选择“Valdivia”以查看提醒

答案 1 :(得分:-1)

我找到了解决方案:)

问题是PHP数组。要使用此自动完成插件获取某些数据值,您必须使用array()

PHP代码

$suggestions = array();
if (mysql_num_rows($query))
{
while($row = mysql_fetch_assoc($query))
{
 $mydata1='$row['data1']';
 $mydata2='$row['data2']';
$nom_voie=''.utf8_encode($row['nom_voie']).'';
$suggestions[] = array(
    "value" => $nom_mydata1,
    "data" => $nom_mydata2
);

    }
}
echo json_encode(array('suggestions' => $suggestions));