【问题标题】:Somethings wrong with autocomplete自动完成有问题
【发布时间】:2012-08-10 15:46:33
【问题描述】:

我正在建立一个网站来学习编码,并且我有一个基于 Jquery ui 的自动完成功能,我用三个 mysql 表填充。

这是我在 index.php 上的代码(我的搜索框所在的页面和自动完成功能应该打开的页面)

    <script src="./public/js/jquery.js"></script>
    <script src="public/js/jquery-ui-1.8.22.custom.min.js" type="text/javascript" charset="utf-8"></script>
    <script>
    $(function() {

            $("#search").autocomplete({
            source: "suggest.php",
            minLength = 2,
            select: function( event, ui ) {
                    log( ui.item ?
                         "Selected: " + ui.item.value + aka " + ui.item.id :
                         "Nothing selected, input was " + this.value );
                    }
            });

    });
    </script>

下面是 index.php 上的代码,格式如下:

<form class="form-search span8 offset6">
    <input type="text" id='search' name='q' autocomplete="off" class="input-medium search-query">
    <button type="submit" class="btn btn-warning">GO!</button>
</form>

这是suggest.php上的代码:

<?php

require("./config.php");

$q = $_GET['q'];

$names = '';

$result = mysql_query("SELECT name FROM company WHERE name LIKE '$q%' UNION SELECT cat FROM cat WHERE cat LIKE '$q%' UNION SELECT subcat FROM subcat WHERE subcat LIKE '$q%' LIMIT 10");

$names = array();

while ($row = mysql_fetch_array($result)) { 
   $names[] = $row['name']; 
}

echo json_encode($names);
?>

如果我直接去suggest.php?q=SOMETHING 并回显$names,结果是这样的:

["City Market","Cafes","Cheesesteaks","Chicken Wings","Chinese","CSA","Coffee & Tea","Convenience Stores","Comedy Clubs"]Array

当我在 Chrome 中打开开发者面板时,jQUery 旁边出现一个错误,自动提示“Uncaught SyntaxError: Unexpected Token ="

我的自动建议没有显示。怎么了?

感谢大家的帮助!


我将 = 更改为 : 现在新错误是“Unexpected Token Illegal”并且自动完成仍然没有出现...有什么建议吗?

【问题讨论】:

  • 出于好奇,您为什么在 PHP 中同时回显数组的 JSON 表示和数组本身?
  • @anthony,哎呀抱歉,我有最后一个 echo $names 只是为了测试......不应该在那里
  • 好的,我把 = 改成了 : 现在新的错误是“Unexpected Token Illegal”...自动完成仍然没有出现

标签: php javascript jquery mysql


【解决方案1】:

你在minLength中有一个等号,应该是冒号

$(function() {

        $("#search").autocomplete({
        source: "suggest.php",
        minLength: 2,
        select: function( event, ui ) {
                log( ui.item ?
                     "Selected: " + ui.item.value + aka " + ui.item.id :
                     "Nothing selected, input was " + this.value );
                }
        });

});

【讨论】:

  • @Vic 谢谢,我刚刚解决了这个问题。不幸的是,自动完成仍然没有出现。有什么建议吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-18
  • 2013-02-13
  • 2010-12-04
  • 2011-08-08
  • 2013-01-22
  • 2016-05-31
相关资源
最近更新 更多