Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 刷新mysql查询中的复选框检查_Php_Html_Mysql - Fatal编程技术网

Php 刷新mysql查询中的复选框检查

Php 刷新mysql查询中的复选框检查,php,html,mysql,Php,Html,Mysql,我在php和mysql中有一个控制面板,可以在页面加载时显示。我在该页面上有一个复选框(默认为关闭,不存储在db中,也不绑定到显示旧项目的选项之外的任何内容),当我单击它时,我希望查询使用应用的新过滤器刷新数据。基本上在加载时,它只显示活动项目,当他们选中复选框时,我希望页面重新加载以显示过时的项目 我的代码是: <form action="" method="POST"> <input type="checkbox" name="filter" value="

我在php和mysql中有一个控制面板,可以在页面加载时显示。我在该页面上有一个复选框(默认为关闭,不存储在db中,也不绑定到显示旧项目的选项之外的任何内容),当我单击它时,我希望查询使用应用的新过滤器刷新数据。基本上在加载时,它只显示活动项目,当他们选中复选框时,我希望页面重新加载以显示过时的项目

我的代码是:

    <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条件下比较该值