我使用Devbridge自动完成功能在类似谷歌地图的数据库中进行搜索。用户需要输入地址,我将在具有51k记录的表中使用自动完成功能进行搜索。我有以下字段:
- 城市
- 街道类型(街道,胡同,大道等)
- 街道名称
- 邮政编码
我只在街道名称上进行搜索。
我需要忽略输入的某些部分。例如,99%的用户将输入“street abc”或“alley abc”而不是abc。
我希望有类似的东西 - 当用户输入“str,street,alley等”之类的单词时,不会发生任何事情 - 当用户开始输入街道名称时,显示基于数据库查询的建议
这是代码
$('#address').autocomplete({
serviceUrl: './test.php',
onSelect: function(suggestion) {
$('#valoare').html('You selected: ' + suggestion.value + ', ' + suggestion.data);
},
onHint: function (hint) {
$('#valoare').val(hint);
},
onInvalidateSelection: function() {
$('#selction-ajax').html('You selected: none');
}
});
我试图忽略PHP中的get,但没有运气。任何人都知道如何解决这个问题? 谢谢
更新 - 带注释的PHP代码
/*if ($_GET['query'] != 's' || $_GET['query'] != 'S')
if ($_GET['query'] != 'st' || $_GET['query'] != 'St')
if ($_GET['query'] != 'str' || $_GET['query'] != 'Str')
if ($_GET['query'] != 'str' || $_GET['query'] != 'Str') {*/
$results = $database->select("carrier_pcodes", "*", ["nume_artera[~]" => $_GET['query']]);
$suggestions = array();
$reply['query'] = $_GET['query'];
$reply['suggestions'] = array();
foreach ($results as $result) {
$reply['suggestions'][] = array(
'value' => $result['tip_artera'] . ' ' . $result['nume_artera'] . ', ' . $result['localitate'] . ', ' . $result['judet'] . ', ' . $result['cod'],
'data' => "madalin",
);
}
echo json_encode($reply);
/* }
else echo json_encode(array());
else echo json_encode(array());
else echo json_encode(array());*/