【发布时间】: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