我正在尝试使用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,所以如果有人能帮助我,我会很高兴。
谢谢大家。
答案 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);
}