3

我正在尝试使用 Jquery UI 在我的项目上实现自动完成功能,但是我想进行一些小的修改。

动态调用的 PHP 是:

<?php 
include "../../connections/connect.inc.php";


$return_arr = array();


$search_term = "%".$_GET['term']."%";
$moviesquery = "SELECT * FROM movie where movie_name like :term";
$movieresults = $dbconnection->prepare($artistsquery);
$movieresults->bindValue(":term",$search_term);
$movieresults->execute();

/* Retrieve and store in array the results of the query.*/
while ($row = $movieresults->fetch(PDO::FETCH_ASSOC)) {

$return_arr[] = array('label'=>$row['movie_name'],'value'=>$row['movie_name']); //build an array
//array_push($return_arr,$row_array);
}

/* Toss back results as json encoded array. */
echo json_encode($return_arr);

这是我在 JQuery 调用中写的:

$(function() {
    $("#movie_name").autocomplete({
       source: "sendmovies.php",
       minLength: 3
    })
});

问题是,我想在自动完成建议中查看有关每部电影的更多信息。目前,自动完成功能有效,仅显示电影名称。我希望它在名称下方显示国家和发布年份。当用户单击它时,我希望自动完成仅采用电影名称的值。并且可能还将电影 ID 放入隐藏字段。我是一个 Jquery noobie,所以如果有人可以帮助我,我会很高兴。

谢谢你们。

4

1 回答 1

2

对于这部分:

并且可能还将电影 ID 放入隐藏字段。我是一个 Jquery noobie,所以如果有人可以帮助我,我会很高兴。

jQuery:

$( "#movie_name" ).autocomplete({
    select: function(event, ui){
      if(ui.item.value == ""){
        return false;
      }else{
        //here start your logic (its executed when you select the result
        $('input.hidden').val(ui.item.id);
        $('input[name=any]').val(ui.item.val);
      }
    }
});

你需要添加:

/* Retrieve and store in array the results of the query.*/
while ($row = $movieresults->fetch(PDO::FETCH_ASSOC)) {

$return_arr[] = array(
    'label'=>$row['movie_name'], 
    'value'=>$row['movie_name'], 'id' => $row['id'], 
    'anyother_ui_name' => $row['value']); //build an array
//array_push($return_arr,$row_array);
}
于 2013-02-13T18:58:30.620 回答