php - 如果选中复选框,则将 WHERE 添加到 PDO 查询

标签 php jquery mysql pdo jquery-autocomplete

我有一个带有 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/

相关文章:

php - 对列表中的数据进行排序

mysql - MYSQL 中数据实际存储在哪里(innodb)?

php - 无论用户输入什么,if 语句每次都输出相同的内容

php - cURL、php 和 SSL 错误

php - 比较 Mysql 中的行以查看其他表中不存在哪些值的最快方法

javascript - 使用 AJAX 实时搜索栏时出现“ERR_EMPTY_RESPONSE”

javascript - 如何使用相同的随机排序对两个数组进行排序

javascript - Ajax Jquery更新Mysql表中的值并刷新页面上的值

php - 有没有办法创建 Doctrine 2 实体管理器的模拟并在 Symfony 2 PHPUnit 测试中为其提供模拟实体?

javascript - 如何将行号插入到 ajax 函数中?