【问题标题】:php / jquery autocomplete from mysql tablemysql表中的php / jquery自动完成
【发布时间】:2012-09-10 01:10:17
【问题描述】:

在参考了许多以前关于这个主题的问题和答案之后,我仍然很难过。我试图引用存储用户联系人列表的数据库。作为最初的开始,我保持简单,只允许通过电子邮件(而不是电子邮件、名字和姓氏等)进行参考。

我有以下链接:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    $( ".emaillist" ).autocomplete({
        source: "contacts.php"}); });
</script>

contacts.php:[更新]

<?php
session_start();
include "scripts/sqlconnect.php";
$id = $_SESSION['id'];
$csql = mysql_query("SELECT * FROM db WHERE id='$id' AND email LIKE '%".mysql_real_escape_string($_GET['term'])."%'");
$contactlist = array();
while($row = mysql_fetch_assoc($csql)){
    $contactlist[] = $row['email'];
}
$contactlist = json_encode($contactlist);
header('Content-Type: application/json');
echo "$contactlist";
?>

最后是相关的 HTML sn-p:

<input name="semail" type="text" class="emaillist" id="semail"/>

对我做错了什么有什么建议吗?我似乎无法确定问题所在。

【问题讨论】:

    标签: php jquery mysql autocomplete


    【解决方案1】:

    我注意到的两件事:

    1. 你永远不会输出$contactlist的内容
    2. 您没有设置适当的Content-Type 标头。

    所以你想这样做:

    $contactlist = json_encode($contactlist);
    header('Content-Type: application/json');
    echo $contactlist;
    

    根据the documentation,传递给AJAX 源的值称为term,因此您应该在查询中使用它,而不是semail

    ...  AND email LIKE "%'. mysql_real_escape_string($_GET['term']) .'%"');
                                                             ^^^^-- Here
    

    【讨论】:

    • 你说得对,我没有echo!不幸的是,当我在上面显示的输入字段中输入时,我仍然没有得到任何自动完成选项。我的页面标题中有&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;,这应该是问题吗?
    • contacts.php?如果直接导航到contacts.php,输出是什么?
    • 你也需要传入适当的变量:contacts.php?semail=zeshin
    • 你是说source: "contacts.php" 应该是source: "contacts.php?semail=&lt;? echo $_GET['term'];?&gt;" 吗?
    猜你喜欢
    • 2011-07-15
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多