Php 如果选中复选框,则添加PDO查询的位置
我有一个带有PDO的MySQL查询:Php 如果选中复选框,则添加PDO查询的位置,php,jquery,mysql,pdo,jquery-autocomplete,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(); 我正在为这个“术语”使用自动完成j
$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代码
如果您查看第一段代码,您可以看到我尝试了$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)
谢谢你的帮助 让你的where部分像这样
$filter_con = $_POST['filter'];
$filter = "%".$_POST['filter']."%";
`enter code here` if($filter_con == '1'){
$filterquery = 'AND allowed = 1';
}
else{
$filterquery = 'AND allowed = 1 OR allowed = 0';
}
1:-您使用的是AJAX类型:“POST”
所以使用$\u POST
而不是$\u GET
2:-无需使用
$result->bindValue(":term",$ac_term);
它也会起作用:-
$result->bindValue("term",$ac_term);
最后,当您获取时,通过执行get值
$result->fetchall(PDO::FETCH_ASSOC);
这是一项任务:
if($filter = '1')
您必须使用==
if($filter == '1') {
$filterquery = 'WHERE allowed = 1';
}
else {
$filterquery = 'WHERE allowed = 1 OR allowed = 0';
}
一条线路中的最短路径:
$filterquery = $filter == '1' ? 'WHERE allowed = 1' : 'WHERE allowed = 1 OR allowed = 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'){
如果($filter='1',希望对您有所帮助{是一个赋值。如果它是一个比较,它仍然不能与
%xyz%
一起工作。您的连接SQL中还会有两个WHERE
子句。感谢您的回答,它帮助了我很多!我要感谢其他回答的人,因为所有答案的组合帮助我使它工作。
//This is an assignment and then it's always evaluated true (since equal to 1)
if($filter = '1'){