我有一个带有 PDO 的 MySQL 查询:
$ac_term = "%".$_GET['term']."%";
$query = "SELECT * FROM table where name like :term";
$query .= $filterquery;
$result = $conn->prepare($query);
$result->bindValue(":term",$ac_term);
$result->execute();
我正在为这个“术语”使用自动完成 jquery 代码。
$('#input').autocomplete({
minLength: 2,
source: function (request, response) {
$.ajax({
url: 'suggest_zip.php',
type: "POST",
data: {
term: request.term,
filter: '1'
},
success: function (data) {
response(data);
}
});
}
})
如果您查看第一段代码,您会发现我尝试了 $query .= $filerquery。 $filterquery 在这里定义:
$filter = "%".$_GET['filter']."%";
if($filter = '1'){
$filterquery = 'WHERE allowed = 1';
}
else{
$filterquery = 'WHERE allowed = 1 OR allowed = 0';
}
所以我想做的是在 jquery 变量 filter = 1 时在我的数据库中搜索 allowed = 1 的记录。否则它应该搜索每条记录(它是 1 或 0)。
感谢您的帮助!
最佳答案
将您的 Ajax 请求 URL 更改为
$.ajax({
url: 'suggest_zip.php?filter=' + ($('#your_checkbox_selector').is(':checked') ? 1 : 0 ),
//...
此外,修复您的 PHP 问题
//This is an assignment and then it's always evaluated true (since equal to 1)
if($filter = '1'){
希望对你有帮助
关于php - 如果选中复选框,则将 WHERE 添加到 PDO 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23739339/