2012-10-28 50 views
-2

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

我哪里错了?

我用下面的代码

的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(); 
+0

什么是错误? –

+0

问题是(除了:“有什么问题”)? – adeneo

+0

我建议如果您在博客文章后遇到问题,请在那里与作者讨论。 – hakre

回答

0

查看的是自动完成插件的文档。它看起来像你使用了错误的对象属性。

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如何格式化数据。

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

+0

我最初尝试使用源代码,但由于它不工作,我尝试使用网址! – Sun

+0

为什么要将它改为'url?'这不是文档中的属性。至少改回它。 – SacWebDeveloper

+0

好的,是不是可以在上面的代码中包含一个php文件来进行数据连接。包含'Config.php'; (它有PDO连接) – Sun

1

如果你打破日这不是要去工作e期望通过在随机文本前加上无条件的echo()输出来获得JSON结果。

删除:

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

否则自动完成插件将收到

garbage text here [{"json":"won't be readable"},...] 
+0

我删除了“echo('您的密码必须至少有8个字符');”但它没有获取任何记录。 – Sun

+0

按照@dfsq – mario

+0

建议进行一些基本的调试如何检查$ rs的值是否能够获取记录? – Sun