如何在 JavaScript 函数中访问二维数组的值(由 php 文件在 jquery 自动完成中返回)?

How to access values of 2d array (returned by php file in jquery autocomplete) in JavaScript Function?

我觉得很简单,但我无法解决。
这是JQuery:

$( "#tut_search" ).autocomplete({
    minLength: 2,
    source: "PHP_Code/MyAjax.php?page=tut_search_ac"
});

这是 php 脚本,它将二维数组返回给 JQuery 自动完成:

$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 函数。我想在点击每个自动完成列表项时调用它:

//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
}

这是我的两个要求:

  1. 我想在任何时候调用函数 loader(label, value) 单击或选择了自动完成列表的项目。
  2. 我还想在 loader(laber, value) 函数中访问 labelvalue 的值。
    (labelvalue 是两个独立的值 我在 php 脚本中返回了)。

请给我一些解决上述两个任务的方法。
提前致谢。

使用 jQueryUI Autocomplete 的 select 属性 来调用您的函数。

// on autocomplete initialization
$( "#tut_search" ).autocomplete({
    minLength: 2,
    source: "PHP_Code/MyAjax.php?page=tut_search_ac",
    select: function(event,ui){}
});

// or after initialization
$( "#tut_search" ).on( "autocompleteselect", function( event, ui ) {} );

您可以从 ui.item.labelui.item.value 访问 label 和 value 属性也就是说我会在 function(event,ui) 中调用您的函数{//here}并从那里传入参数