【发布时间】:2015-07-31 10:17:21
【问题描述】:
我认为这很简单,但我无法解决它。
这是 JQuery:
$( "#tut_search" ).autocomplete({
minLength: 2,
source: "PHP_Code/MyAjax.php?page=tut_search_ac"
});
这是将二维数组返回到 JQuery 自动完成的 php 脚本:
$keyward = $_REQUEST['term'];
$query = "SELECT title FROM tutorial WHERE title LIKE '%$keyward%' ORDER BY title";
$rs = mysql_query($query) or die(mysql_error()." in query $query");
if($rs)
{
while($row = mysql_fetch_array($rs))
{
$contents[] = array( "label" => $row['id'], "value" => $row['title'], "detail" => $row['text'] );
}
}
echo json_encode($contents);
这是我自己创建的 JavaScript 函数。我想在每个自动完成列表项的 onclick 上调用它:
//This function should be called when autocomplete list item is clicked or selected
function loader(label, value)
{
//Here I want to perform processing on `label` which is actually an id & returned by php script
//Here I want to perform processing on `value` which is also returned by php script
}
这是我的两个要求:
- 我想在任何时候调用函数
loader(label, value)自动完成列表项被单击或选择。 - 我还想在
loader(laber, value)函数中访问label和value的值。
(label和value是两个不同的值 我在 php 脚本中返回)。
请给我一些解决方案来完成以上两个任务。
提前谢谢你。
【问题讨论】:
-
不清楚你在问什么。如果
loader应该进行预处理,也许您的意思是使用source选项的函数?为source使用字符串值已经为您完成了基本处理;选择后,选择的 label 被丢弃,value 被放置在自动完成中(您可以使用.val()检索它,就像任何输入值一样) -
我想将自己创建的函数绑定到列表项。函数还应该访问和处理 php 脚本远程返回的所有数据。 @blgt 请重新阅读我的问题,我也对其进行了编辑/修改。
-
绑定函数的第一个任务已经通过使用JQuery的
select属性解决了。像这样select:function(event,ui){ loader(); }。现在我只想在我的loader()函数中访问label和value。
标签: jquery jquery-ui jquery-autocomplete jquery-ui-autocomplete