[英]Getting jQuery autocomplete to work with PHP source
我有一个带有以下代码的jQuery自动完成字段:
var tags = ["a", "ab", "abc", "abcd", "adbce", "abcdef", "abcdefg", "abcdefgh", "abcdefghi", "abcdefghij", "abcdefghijk", "abcdefghijkl", "abcdefghijklm", "abcdefghijklmn", "abcdefghijklmno", "abcdefghijklmnop", "abcdefghijklmnopq", "abcdefghijklmnopqr", "abcdefghijklmnopqrs", "abcdefghijklmnopqrst", ];
$("input#name").autocomplete({
position: {
offset: "0 -10px",
},
source: tags
});
使用“标签”数组作为样本输入数据,它可以正常工作。
现在,我需要一组MySQL查询结果,而不是该示例数组。 我所做的就是将函数调用更改为:
$("input#name").autocomplete({
position: {
offset: "0 -10px",
},
source: "http://absolutepathtofile/autosuggest.php"
});
我使用绝对路径来确保没有在那儿犯一些愚蠢的错误,因为我无法使文件返回到自动完成功能中。 我去过jQuery文档,找到了一些使用PHP / MySQL返回自动完成结果的示例,但我无法使其正常工作。
这是我在autosuggest.php中尝试过的:
$term = $_REQUEST['term'];
$query = "SELECT * FROM merchants WHERE business_name LIKE '%$term%'";
$result = mysql_query($query);
$k=0;
while($row=mysql_fetch_array($result)){
$aUsers[$k]=$row['business_name'];
$k++;
}
echo json_encode($aUsers);
我使它尽可能简单,但是没有用。
然后我测试了一下是否发送了JSON,所以我这样做了:
$array[0]="test";
$array[1]="test1";
echo json_encode($array);
而且它不起作用。 我在任何地方都找不到此问题,我在做什么错? PHP版本是5.3.10,它具有json_encode(以前使用过)。
$.ajax({
url:"http://absolutepathtofile/autosuggest.php",
type:"post",
success:function(html){
$("#user_phone").autocomplete(
{position: {offset: "0 -10px"},
source: html
});
}
});
我编写了这个自定义脚本,以在没有json_encode的情况下使下拉菜单在我们的代码中起作用,希望它可以帮助您解决问题。
“ get_xref_values()”函数只是根据提供的参数构建一个数组,而GET-“ term”-是自动完成文本框中的文本,控件会自动添加它。
“点击”代码仅在用户单击时以及键入时自动使自动完成下拉列表成为可能。
这是jQuery:
$("#libraryEventAspectRatio" ).autocomplete({
source: "/dropDowns/autoXref.php?category=" + "aspectratio",
matchContains: true,
minLength: 0
}).click(function(){
$("#libraryEventAspectRatio" ).autocomplete('search', $(this).val());
});
这是PHP:
//this page creates simple data for a drop down box to use (jquery's UI autocomplete)
$category = get_input_get("category");
$description = get_input_get("term");
$select_field = get_input_get("selectField");
$select_value = get_input_get("selectValue");
$order_by = "description";
$xref_data = get_xref_values($category, $order_by, $description, $select_field, $select_value);
$str = "[";
foreach ($xref_data as $row):
$str .= '"' . $row['description'] . '",';
endforeach;
//chop off the last comma
if (count($xref_data)) {
$str = substr($str,0,-1);
}
$str .= "]";
echo $str;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.