jQuery的自动完成PHP的Mysql

嗨可能有人请看看这个,让我知道我要去哪里错了。 我试图让jQuery用户界面自动完成工作。 这是我的代码:这是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); ?>

这是我的javascript联脚本

<script type="text/javascript"> $(document).ready(function() { $('#auto').autocomplete( { source: "./search.php", minLength: 3 }); }); </script>

这就是'自动'的div

<div id="searchTxtFieldDiv"> <p><input type="text" id="auto" /></p> </div>

当我使用Firebug查看来电我看到的search.php正在恢复

[{"Title":"Sin City"}]

jQuery是只显示UNDEFINED任何想法?

--------------解决方案-------------

看看jQuery UI的自动完成文件。 你正在返回的JSON不匹配自动完成所期待的。 返回的对象必须有一个名为标签或值(或两者)的属性。

您可以尝试以下选项:

选项​​1:更改返回的JSON

变化是返回的JSON,包括标签/值属性,例如:

[{"label":"Sin City"}]

从实例它似乎也使用id属性。 我相信上面的是自动完成,以显示值列表的最低要求。 我想你也可以返回一个字符串数组,它会呈现在完全相同的方式如上述。

[ "Sin City", "Etc" ]

方法2:更改私人_render功能

更改专用_renderItem功能自动完成使用您的自定义属性如本自动完成的例子(未经测试):

$( "#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 );
};

这是一个更灵活一点,但是更恶心恕我直言。

@Shaun感谢队友,有时候你只需要有人指出明显。 我终于得到它的工作方式是

include "db_connect.php";
$search = protect($_GET['term']);
$result = mysql_query("SELECT Title FROM `movie` WHERE `Title` LIKE '%$search%' ORDER BY Title ASC") or die('Something went wrong');

$json = '[';
$first = true;
while ($row = mysql_fetch_assoc($result))
{
if (!$first) { $json .= ','; } else { $first = false; }
$json .= '{"value":"'.$row['Title'].'"}';
}
$json .= ']';
echo $json;

ATLEAST运行mysql_real_escape_string()在$搜索干扰它变成一个SQL查询之前。

来源:在你的JavaScript位可能搞乱它。 您应该删除。 如果'的search.php'是在位于DocumentRoot目录的'顶'。

萤火虫可能会帮助你在沟通采取高峰为好。

我正想说这个,总是过滤用户输入。

这很难说,因为我从来没有使用jQuery的自动完成,但我认为你应该针对“#AUTO”的值。 事情是这样的:$('#汽车“)VAL()autocomplet

分类:php 时间:2012-04-26 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.675 (s). 10 q(s)