使用Jquery自动完成的多个标签

时间:2013-02-13 18:43:17

标签: php jquery ajax jquery-ui autocomplete

我正在尝试使用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,所以如果有人能帮助我,我会很高兴。

谢谢大家。

1 个答案:

答案 0 :(得分:1)

这部分:

  

并且可能将电影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);
}