【发布时间】:2015-01-07 15:03:44
【问题描述】:
我想创建一个 jQuery 字段,它会在我输入用户名时自动完成,这是我的代码:
首先是我的 jQuery 脚本:
<script>
$(document).ready(function(){
$('#search').typeahead({
source: function(query, process) {
$.ajax({
url: 'func/autocomplete.php'
type: 'POST';
data: 'query=' + query;
dataType: 'JSON';
async: true;
success: function(data) {
process(data);
}
});
}
});
});
</script>
其次是表格:
<div class="container">
<div class="ribbon">Change player's IP(UCP Whitelist)</div>
<table border="1" cellspacing="15" align="center">
<tr>
<form action='func/changeip.php' method='POST' class="navbar-search">
<td><input type='text' class="search-query span3 pull-right" placeholder='Account Name' name='username' id='search' data-provide="typeahead"></td>
<td><input type='text' placeholder='ex. 192.162.1.20' name='ip' id='ip'></td>
<td><input type='submit' value='Change IP'></td>
</form>
</tr>
</table>
</div>
第三个是我的autocomplete.php:
<?php
include '../includes/connect.php';
if (isset($_POST['query'])) {
$query = $mysqli->real_escape_string($_POST['query']);
$sql = $mysqli->query("SELECT * FROM accounts WHERE Username LIKE '%{$query}%'");
$array = array();
while ($row = fetch_assoc($sql)) {
$array[] = $row['Username'];
}
echo json_encode($array);
}
?>
现在,直截了当地说。简单的不行。我做错了什么,我该如何解决?
【问题讨论】:
-
您的 HTML 无效。您的
form元素需要包裹整个table。 -
你是否包含了 typeahead 库?自动完成不是核心 jQuery 包的原生
标签: javascript php jquery autocomplete