-2

我在我的项目中使用这个源代码:http ://www.htmlblog.us/jquery-autocomplete ,但是当我输入自动完成文本框时我无法获取结果。

我哪里错了?

我使用以下代码

Javascript :(我为这个 javascript 使用了一个单独的文件,并检查了这个调用是否使用警报,并且我能够在运行时生成警报消息。)

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();
4

2 回答 2

1

echo()如果您通过在无条件输出中添加随机文本前缀来破坏预期的 JSON 结果,则它不会起作用。

删除:

echo('Your password must be at least 8 characters long');

否则自动完成插件将收到

garbage text here [{"json":"won't be readable"},...]
于 2012-10-28T19:58:22.687 回答
0

查看 AutoComplete 插件的文档。看起来您使用了错误的对象属性。

http://api.jqueryui.com/autocomplete/

如您所见,没有“ url ”属性,请改用“ source ”。

更改此行:

$('#CourseId').autocomplete( { url:'AutoComplete_Courses.php', minLength:2 } );

$('#CourseId').autocomplete( { source:'AutoComplete_Courses.php', minLength:2 } );

此外,每当我遇到来自数据库的数据时,我通常会将变量包装在 PHP 的内置输出函数 var_dump() 中,以查看 PHP 如何格式化数据。

http://us2.php.net/manual/en/function.var-dump.php

于 2012-10-28T20:14:24.947 回答