Typeahead Bootstrap在本地但不在生产服务器上工作

时间:2013-06-19 04:13:58

标签: php json bootstrap-typeahead

我有一些问题,我无法想象。我已经编写了使用Type-ahead来获取自动完成搜索系统的功能。

此功能在localhost机器上运行良好,但当它上传到服务器时,该功能被破坏。

这是我的预先输入语法:

<script>
         $(document).ready(function(){
             $('#q').typeahead({
                 source: function(query, process){
                     $.ajax({
                         url:'autosearch.php',
                         type:'POST',
                         data:'query=' + query,
                         dataType: 'JSON',
                         async: true,
                         success:function(data){
                             process(data);
                         }
                     });
                 }
             })
         });   
        </script>

它从文本输入中获取值(下面的html)

<form method="GET" action="search.php" class="form-inline pull-right">
                        <input name="q" id="q" class="span5" type="text"  placeholder="search" data-provide="typeahead" autocomplete="off">
                        <button type="submit" class="btn btn-primary"> <i class="icon-search icon-white"></i></button>
                    </form>

这个功能出了什么问题?

感谢

更新

从firebug获得结果后,它显示php文件出现错误

注意:第5行的 C:\ xampp \ htdocs \ kbase \ panel \ autosearch.php 中的未定义索引:q

php代码是这样的:

<?php 
require_once "configuration.php";
$q = mysql_real_escape_string(strtolower($_GET['q']));

$sql = "SELECT DISTINCT title as title FROM ** WHERE title LIKE '%" . $q ."%'";
$rsd = mysql_query($sql);
$cname = array();

while ($rs = mysql_fetch_assoc($rsd)) 
{
    $cname[] = $rs['title'];
}
 echo json_encode($cname);
?>

1 个答案:

答案 0 :(得分:0)

autosearch.php发送了POST个请求,而不是GET个请求。它还将变量名称发送为query而不是q

首先,你可以简化ajax查询:

$(document).ready(function(){
    $('#q').typeahead({
        source: function(query, process) {
            $.ajax({
                url:'autosearch.php',
                type:'POST', // <- defaults to GET (desired by your PHP)
                data:'query=' + query, // <- change to {'q': query} for your PHP
                dataType: 'JSON', // <- 'json' LOWERCASE
                async: true, // <- defaults to true anyway
                success: process // <- same function signature
        }
    })
});   
相关问题