AJAX/PHP搜索不起作用

AJAX/PHP搜索不起作用,php,ajax,Php,Ajax,我正在尝试使用php和AJAX创建一个搜索框。但是,当我在searchbox中键入数据库中已有的名称时,不会显示任何建议。什么也没发生 我已经测试了php,似乎正在工作。我错过了什么 使用PDO更新代码 require_once('connect_pdo.php'); $searchTerm = $_GET['term']; $stmtus = $conn->prepare("SELECT * FROM `Schools` WHERE `School` LIKE :School");

我正在尝试使用php和AJAX创建一个搜索框。但是,当我在searchbox中键入数据库中已有的名称时,不会显示任何建议。什么也没发生

我已经测试了php,似乎正在工作。我错过了什么

使用PDO更新代码

require_once('connect_pdo.php');

$searchTerm = $_GET['term'];

$stmtus = $conn->prepare("SELECT * FROM `Schools` WHERE `School` LIKE :School");
$stmtus->bindValue(':School', '%' . $searchTerm . '%');
$searchTerm = $_POST['school'];;
$stmtus -> execute();


while ($result = $stmtus->fetch(PDO::FETCH_ASSOC)) {

$school = $result['School'];

}
echo json_encode($school);
阿贾克斯

HTML


您使用的任何绑定锚,如:School,都需要在查询字符串中显示为不带引号。也就是说,不要这样做:

$stmtus = $conn->prepare("SELECT * FROM `Schools` WHERE `School` LIKE '%".$searchTerm."%'");
$stmtus->bindParam(':School', $searchTerm);
这样做:

$stmtus = $conn->prepare("SELECT * FROM `Schools` WHERE `School` LIKE :School");
$stmtus->bindValue(':School', '%' . $searchTerm . '%');

这不是准备好的声明的工作方式。您需要在查询中放置占位符。然后,驱动程序将术语与占位符绑定。我假设JS可以使用这个注释,您应该将问题的范围缩小到PHP或JS。从School LIKE:School所在的School中选择*并在绑定上添加%。您有标签,但没有输入?更新的代码将引发解析错误,解析错误:语法错误,意外的“:”。你的实际代码是什么?@JayBlanchard。我修正了准备好的声明。输入在Label中现在您已经修复了准备好的语句,并且PHP工作正常,这里没有任何东西会导致我们可以看到的问题。您完全确定控制台中没有错误,并且可以在浏览器的开发人员工具中清楚地看到AJAX请求/响应?
$stmtus = $conn->prepare("SELECT * FROM `Schools` WHERE `School` LIKE '%".$searchTerm."%'");
$stmtus->bindParam(':School', $searchTerm);
$stmtus = $conn->prepare("SELECT * FROM `Schools` WHERE `School` LIKE :School");
$stmtus->bindValue(':School', '%' . $searchTerm . '%');