问题描述
有人可以看看这个,让我知道我哪里出错了.我正在尝试让 jQuery UI 自动完成工作.这是我的代码:这是search.php
include "db_connect.php";$search = $_GET['term'];$result = mysql_query("SELECT Title FROM `movie` WHERE `Title` LIKE '%$search%' ORDER BY Title ASC") or die('出了问题');$rows = array();而 ($row = mysql_fetch_assoc($result)){$rows[] = $row;}打印 json_encode($rows);?>这是我的 javascript 内联脚本
这是自动"div
<p><input type="text" id="auto"/></p>当我使用 firebug 查看调用时,我看到 search.php 正在返回
[{"Title":"罪恶之城"}]jQuery 只是显示 UNDEFINED有什么想法吗??
查看 jquery ui 自动完成文档.您返回的 JSON 与自动完成功能正在寻找的内容不匹配.您返回的对象必须具有名为 label 或 value(或两者)的属性.
您可以尝试以下选项:
选项 1:更改返回的 JSON
更改返回的 JSON 以包含标签/值属性,例如:
[{标签":罪恶之城"}]从示例中它似乎也使用了 id 属性.我相信以上是自动完成显示值列表的最低要求.我认为你也可以返回一个字符串数组,它会以与上面完全相同的方式呈现它.
[ 《罪恶之城》、《等等》]选项 2:更改私有 _render 函数
更改自动完成的私有 _renderItem 函数以使用您的自定义属性,如此 自动完成示例所示(未经测试):
$( "#project" ).autocomplete({来源:./search.php",最小长度:3}).data(自动完成")._renderItem = function( ul, item ) {返回 $( "").data( "item.autocomplete", item ).append( item.Title ).appendTo(ul);};这有点灵活,但恕我直言更丑陋.
Hi could some one please take a look at this and let me know where I'm going wrong. I am trying to get jQuery UI autocomplete to work. this is my code: This is search.php
include "db_connect.php";
$search = $_GET['term'];
$result = mysql_query("SELECT Title FROM `movie` WHERE `Title` LIKE '%$search%' ORDER BY Title ASC") or die('Something went wrong');
$rows = array();
while ($row = mysql_fetch_assoc($result)){
$rows[] = $row;
}
print json_encode($rows);
?>
this is my javascript inline script
<script type="text/javascript">
$(document).ready(function()
{
$('#auto').autocomplete(
{
source: "./search.php",
minLength: 3
});
});
</script>
and this is the 'auto' div
<div id="searchTxtFieldDiv">
<p><input type="text" id="auto" /></p>
</div>
When I look at the call using firebug I see that search.php is returning
[{"Title":"Sin City"}]
jQuery is just displaying UNDEFINED any ideas??
Have a look at jquery ui autocomplete documentation. The JSON you are returning does not match what the autocomplete is looking for. The object you return must have properties named label or value (or both).
You can try the following options:
Option 1: Change returned JSON
Change the JSON being returned to include the label/value properties such as:
[{"label":"Sin City"}]
From the examples it also seems to use the id property. I believe the above is the minimum requirement for the autocomplete to display a list of values. I think you can also return an array of strings and it will render it in exactly the same way as the above.
[ "Sin City", "Etc" ]
Option 2 : Change private _render function
Change the private _renderItem function for the autocomplete to use your custom properties as shown in this autocomplete example (untested):
$( "#project" ).autocomplete({
source: "./search.php",
minLength: 3
})
.data( "autocomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( item.Title )
.appendTo( ul );
};
This is a bit more flexible but much uglier imho.
这篇关于jQuery 自动完成 Mysql PHP的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!



大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构网站源码(带手机端)
高端HTML5响应式企业集团通用类网站织梦模板(自适应手机端)