【发布时间】:2018-04-15 19:26:59
【问题描述】:
大家好,我有一个问题,我正在从 abc.php 调用 ajax 搜索脚本,并且 MySQL 查询工作正常,但是当我通过 ajax 搜索时,它会给出所有结果
这是 MySQL 查询:
$query = "select * from tableName where column1 like '%pattern%' or column2 like '%pattern' or column_n like '%pattern'";
这是我的 Ajax 代码
function showHint(str) {
if (str.length==0) {
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (this.readyState==4 && this.status==200) {
document.getElementById("txtHint").innerHTML=this.responseText;
}
}
xmlhttp.open("GET","abc.php?q="+encodeURIComponent(str),true);
xmlhttp.send();
}
这是我的 abc.php
<?php
include "databaseconnect.php";
$id = trim($_GET['q']);
$res = $con->prepare('select count(*) from tablename where column = 1 AND (column = ? OR column like ? OR column like ? OR column like ? OR column like ? OR column like ? OR column like ? OR column like ?)');
$res->execute(array("$id","%$id%","%$id%","%$id%","%$id%","%$id%","%$id%","%$id%"));
if($res->fetchColumn() > 0) {
$query = $con->prepare('select * from tablename where column = 1 AND (column = ? OR column like ? OR column like ? OR column like ? OR column like ? OR column like ? OR column like ? OR column like ?)');
$query->execute(array("$id","%$id%","%$id%","%$id%","%$id%","%$id%","%$id%","%$id%"));
?>
<?php
while($row = $query->fetch(PDO::FETCH_ASSOC)){
print_r($row);
}
}
?>
这是我的 HTML 代码
<form onsubmit="return false;">
<input type="text" autocomplete="off" autofocus="autofocus" onkeyup="showHint(this.value)" class="form-control input-lg gap-top" placeholder="Search for...">
</form>
<div class="container-fluid">
<div class="table-responsive">
<p><span id="txtHint"></span></p>
【问题讨论】:
-
请显示
abc.php代码。 -
我添加了abc.php代码
-
我已经使用 print_r() 以数组的形式打印出来
-
yes print_r() 以数组的形式打印。而不是用来正常显示的表格
-
你试过不使用ajax吗?通过浏览器
标签: php jquery html mysql ajax