我的html中有以下内容:
<td>
Maintenance Provider
</td>
<td>
<input type=text name='maintenance' id='maintenance'/>
</td>
</tr>
</table>
我在JS中有以下内容,它使用Bootstrap typeahead:
$(function() {
$('#maintenance').typeahead({
source: function (query, process) {
return $.getJSON(
'/processing.php?search_preencoded=Y',
{ query: query },
function (data) {
return process(data);
}
);
}
});
});
Processing.php代码片段是:
if(isset($_GET['search_preencoded'])){
$db2=new mysqli("localhost","root","","external");
$sql="select * from preencoded where content like '".$_POST['query']."%%'";
$rs=$db2->query($sql);
$nm=$rs->num_rows;
for($i=0;$i<$nm;$i++){
$row=$rs->fetch_assoc();
$data[]=$row['content'];
}
echo json_encode($data);
}
但是当我输入假定在数据库中的内容时,typeahead不起作用!请注意,该表只有两个字段:代码和内容。
我做错了什么?
答案 0 :(得分:1)
我认为你的 LIKE 是错误的尝试:
$sql = "select * from preencoded where content like '%" . $_POST['query'] . "%'";
看看 - http://www.tutorialspoint.com/mysql/mysql-like-clause.htm
根据您想要的搜索类型,您需要在$ _POST [&#39;查询&#39;]之前,之后或之前和之后使用%。
同时格式化您的问题,以便更容易阅读。