【问题标题】:Bootstrap Autocomplete (typeahead) does not work引导自动完成(预先输入)不起作用
【发布时间】:2014-04-27 16:41:53
【问题描述】:

我正在尝试制作一个使用 Bootstrap 的预输入功能的自动完成文本框。我已经通过手动输入的javascript数组对其进行了测试。但是,我尝试添加允许自动完成以使用 mysql 数据库中的数据的代码,但我无法使其正常工作。我可以做些什么来解决这个问题,以便自动完成功能将显示 MySQL 数据库中的建议单词?

HTML (test2.html)

<div class="well">  
    <input type="text" class="span3" id="typeahead" data-provide="typeahead" data-items="4" />  
</div>  

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


PHP (source.php)

<?php 

include 'connect.php'; // connects to database

if (isset($_POST['query'])) {
    $query = $_POST['query'];
    $mysql_query = mysql_query("SELECT * FROM country WHERE country LIKE '%{$query}%'");

    while ($row = mysql_fetch_assoc($mysql_query)) {  
        $array[] = $row['name'];
    }

    json_cnode($array)

}

【问题讨论】:

  • 错误是什么……你得到了什么……问题是什么……你调试了吗?
  • json_cnode($array) .. 不是 json_encode[$array]; ...至少应该在那里引发错误
  • 还是不行。问题是当我输入时没有任何反应(也就是自动提示没有激活)所以我不知道问题的根源。我知道 mysql 查询确实有效,所以这不是问题。
  • 你检查错误日志了吗??
  • 您的代码容易受到 SQL 注入的攻击。你应该阅读how to prevent them in PHP

标签: php mysql twitter-bootstrap bootstrap-typeahead


【解决方案1】:

错误出现在代码的下一部分:

json_cnode ($array)

应该说:

echo json_encode ($array);

【讨论】:

    猜你喜欢
    • 2014-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-14
    • 2013-08-06
    • 1970-01-01
    • 1970-01-01
    • 2019-03-15
    相关资源
    最近更新 更多