我在我的项目中使用此源代码:http://www.htmlblog.us/jquery-autocomplete但是当我输入自动填充文本框时,我无法获取结果。
我哪里错了?
我使用以下代码
Javascript:(我为此javascript使用单独的文件并检查是否使用alert进行调用,并且我能够在运行时生成警报消息。)
jQuery(document).ready
(
function()
{
$('#CourseId').autocomplete( { url:'AutoComplete_Courses.php', minLength:2 } );
}
);
Php:
<?php
echo('Your password must be at least 8 characters long');
if ( !isset($_REQUEST['term']) )
exit;
$dblink = mysql_connect('localhost', 'root', '') or die( mysql_error() );
mysql_select_db('mydatabase');
$rs = mysql_query('select courseid, coursename, creditpoints from coursedetails where coursename like "'. mysql_real_escape_string($_REQUEST['term']) .'%" order by coursename asc limit 0,10', $dblink);
$data = array();
if ( $rs && mysql_num_rows($rs) )
{
while( $row = mysql_fetch_array($rs, MYSQL_ASSOC) )
{
$data[] = array(
'label' => $row['courseid'] .', '. $row['coursename'] .' '. $row['creditpoints'] ,
'value' => $row['courseid']
);
}
}
echo json_encode($data);
flush();
答案 0 :(得分:1)
如果您通过在随机文本前加上无条件echo()
输出来打破预期的JSON结果,那将无法工作。
删除:
echo('Your password must be at least 8 characters long');
否则自动完成插件将会收到
garbage text here [{"json":"won't be readable"},...]
答案 1 :(得分:0)
查看AutoComplete插件的文档。看起来你使用了错误的对象属性。
http://api.jqueryui.com/autocomplete/
如您所见,没有“网址”属性,请改用“来源”。
更改此行:
$('#CourseId').autocomplete( { url:'AutoComplete_Courses.php', minLength:2 } );
到
$('#CourseId').autocomplete( { source:'AutoComplete_Courses.php', minLength:2 } );
此外,每当我遇到来自数据库的数据时,我通常会将变量包装在PHP的内置输出函数var_dump()中,以查看PHP如何格式化数据。