Php 刷新mysql查询中的复选框检查
我在php和mysql中有一个控制面板,可以在页面加载时显示。我在该页面上有一个复选框(默认为关闭,不存储在db中,也不绑定到显示旧项目的选项之外的任何内容),当我单击它时,我希望查询使用应用的新过滤器刷新数据。基本上在加载时,它只显示活动项目,当他们选中复选框时,我希望页面重新加载以显示过时的项目 我的代码是:Php 刷新mysql查询中的复选框检查,php,html,mysql,Php,Html,Mysql,我在php和mysql中有一个控制面板,可以在页面加载时显示。我在该页面上有一个复选框(默认为关闭,不存储在db中,也不绑定到显示旧项目的选项之外的任何内容),当我单击它时,我希望查询使用应用的新过滤器刷新数据。基本上在加载时,它只显示活动项目,当他们选中复选框时,我希望页面重新加载以显示过时的项目 我的代码是: <form action="" method="POST"> <input type="checkbox" name="filter" value="
<form action="" method="POST">
<input type="checkbox" name="filter" value="true">
</form>
<?PHP
$showold = (isset($_REQUEST['filter']));
if ($showold === 'checked' )
{
$showold = "WHERE `MyTable` = '0'";
}
else
{
$showold = "WHERE `MyTable` = '1'";
}
$query_NowPouring = "SELECT * FROM MyTable $showold";
$result = mysqli_query($mysqli, $query_NowPouring);
if($result){
while($row = mysqli_fetch_array($result)){
#set variables here and display the info in table here.
}
}
?>
您的代码(isset($_请求['filter']);返回类似于0或1的布尔值,而不是字符串,并且您正在将其与if处的字符串($showold=='checked')匹配
问题是您无法将布尔值与字符串进行比较。可能最好使用GET
方法,因为您实际上没有更改任何内容。我不认为行if($showld=='checked')
的工作方式与您预期的一样。isset()的返回值是一个bool,表示变量是否存在。本杰明,你的问题是对的,因为我只是把它扔进去作为概念的证明。为什么没有解释就投了反对票?请告诉我如何使它更好。我只是把它作为我的过滤器正在做的一个例子。你的过滤器将无法工作。首先使用isset函数检查过滤器参数是否存在。然后,再次获取参数过滤器值,并在if条件下比较该值