【发布时间】:2016-12-30 22:26:03
【问题描述】:
我将如何将所谓的“自动完成”功能绑定或使用到下面的代码中,以便使用自动完成功能键盘向上、向下和输入功能,因为目前我的代码没有该功能。它在wordpress模板上,现在只是被鼠标控制。
<script>
$(document).ready(function(){
$("#search-box").keyup(function(){
$.ajax({
type: "POST",
url: "autocomplete.php",
data:'keyword='+$(this).val(),
success: function(data){
$("#suggesstion-box ").show();
$("#suggesstion-box").html(data);
}
});
});
});
function selectCountry(val) {
$("#search-id").val(val);
$("#suggesstion-box").hide();
}
function updateSearchBox(el) {
$("#search-box").val($(el).html());
}
</script>
我尝试过使用
$("#search-box").keyup.autocomplete(function() {
或
$("#search-box").autocomplete(function() {
甚至
$("#search-box").autocomplete.keyup(function() {
但它并没有拉出列表。我知道我的 AJAX 有问题导致我遇到键盘无法正常工作的问题。有什么建议?
好的...我已经更改了我的 php 以提供一个 json。
自动完成.php
<?php
include_once "functions.php";
if(isset($_POST['keyword']))
{
$database = lookup_connectToDatabase();
$result = pg_query($database, "SELECT country, id, state FROM customers WHERE country iLIKE '" . $_POST["keyword"] . "%' OR id iLIKE '" . $_POST["keyword"] . "%' ORDER BY country");
if (!$result){
echo "<div class='show' align='left'>No matching records.</div>";
}else {
while($row=pg_fetch_assoc($result)){
$array[] = array(
'label' = $row['id'].': '.$row['country'].', '.$row['state'],
'value' = $row['id'],
);
}
echo json_encode ($array);
}
}
?>
但似乎仍然无法正常工作。这个 json 我缺少什么?
【问题讨论】:
-
打开控制台,检查 javascript 错误并开始修复它们。
-
您还缺少
$("#search-box")之后的点。没有它就无法调用方法。 -
添加了 .keyup,但仍然没有运气...
-
请说明您要完成的工作。您可以将
minLength设置为0,这将导致自动完成列表出现在焦点上。您可以将其设置为1以在输入单个字母后出现。另外为什么不设置source部分来使用你的PHP?
标签: javascript jquery html ajax jquery-ui