如何使用复选框更改MySQL查询?

时间:2011-10-30 15:28:26

标签: php mysql checkbox

我在以下问题上找不到任何答案。 在我的网站上,我想要一个带有id="filter"的chackbox。 需要该复选框以允许用户在“已审核”和“所有其他”内容之间进行选择,例如如果选中复选框,则显示“已审核”内容,如果未选中复选框,则显示“所有其他内容”。

我有两个不同的mySQL查询:

审核内容

$moderated_content = mysql_query("SELECT * FROM articles WHERE showing=1");

所有其他内容

$allOther_content = mysql_query("SELECT * FROM articles");

因此,我想根据复选框的状态使用这些不同的查询。我有一个cookie,可以记住用户是否已选中或取消选中复选框。我可以在访问网站时显示不同的内容。

这就是问题所在。假设用户已经在网页上并且他/她的复选框未选中,那么他们决定选中一个复选框。如何在检查后显示新内容?我想使用AJAX,但我对它不好,所以对我来说最好的解决方案就是页面刷新。

谢谢

2 个答案:

答案 0 :(得分:0)

使用Javascript / jQuery的

$('#filter').click(function() { 
   document.cookie = "your_cookie="+($(this).attr("checked") ? "1" : "0")+"; path=/";
   window.location.reload();
});

PHP:

$sql = "SELECT * FROM articles WHERE ".(empty($_COOKIE['your_cookie']) ? "showing=1" : "1");

答案 1 :(得分:0)

您可以检查已检查的值,例如

if($_POST['filter'] == 1){ 
  // checked
    $moderated_content = mysql_query("SELECT * FROM articles WHERE showing=1");
 }else{
 //not checked
}  

你会检查它是否已经设置,所以你没有得到任何通知