【发布时间】:2011-12-10 21:14:06
【问题描述】:
我制作了一个电影自动完成功能,您可以在其中输入一个字母,它会为您提供电影的建议列表。在每部电影旁边,我还添加了电影的发行日期。
这就是我在 PHP 中解析它的方式:
$tmdb = new TMDb($api_key);
$json = json_decode($tmdb->searchMovie($_GET['term']));
$response = array();
$i=0;
foreach($json as $movie){
if($i >= 6) break;
$response[$i]['value'] = $movie->name;
$response[$i]['label'] = $movie->name . ' <span class="m_rel">(' . date('Y',strtotime($movie->released)).')</span>';
$i++;
}
echo json_encode($response);
现在,如果我使用 jQuery 1.8.2,一切都会完美运行。
我得到这个结果:
如果我使用更高版本的 jQuery UI,我会得到:
html 很简单,它只是一个表单,而自动完成则是来自 jQuery 的表单,所以没什么特别的。一旦我更改了 UI 的版本,就会出现问题。
有人可以帮我解决这个问题吗?我不能使用 jQuery 1.8.2,因为我遇到了可拖动和 IE(所有版本)的其他问题,因为它是一个已知的错误,所以无法解决。
Andrew 的 Whitaker 回答后我的 JS:
var movieName = $('#movieName');
movieName.autocomplete({
source: 'movieInfo.php',
select: function (event, ui) {
$(this).val(ui.item.imdbid);
$(".re5").submit()
}
})._renderItem = function(ul, item) {
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a>" + item.label + "<span class='m_rel'>" + item.releasedate + "</span></a>")
.appendTo(ul);
};
're5' 是表单的类。
非常感谢
【问题讨论】:
-
问题应该出在你的 js html 代码中,不要也添加那个代码,
标签: php jquery jquery-ui autocomplete jquery-ui-autocomplete