0

我需要使用 HTML 表单过滤网站上的数据。我已经制作了表格,并且我知道如何过滤掉单个数据类型。

以下是表单的代码:

<form method="POST" action="">
                <strong>Brand:</strong> <br>
                    <input type="checkbox" name="Input_1" value="Input 1"/> Input 1 <br>
                    <input type="checkbox" name="Input_2" value="Input 2"/> Input 2 <br>
                    <input type="checkbox" name="Input_3" value="Input 3"/> Input 3 <br>
</form>

这是我的过滤系统代码:

if($_POST['Input_1'] == "Input 1"){
        $query->addFilter("{Table Column}='Input 1'");
    }
elseif($_POST['Input_2'] == "Input 2"){
        $query->addFilter("{Table Column}='Input 2'");
    }
elseif($_POST['Input_3'] == "Input 3"){
        $query->addFilter("{Table Column}='Input 3'");
    }

addFilter功能内置于我用于 Wordpress 的插件中,并将所述过滤器应用于我正在使用的 Airtable 数据库。ifand语句中的条件elseif检查是否选中了该框,然后将指定的任何过滤器应用于从数据库中提取的数据。

我遇到的问题是我只能按一个标准过滤,例如,如果我同时检查输入 1 和输入 2,它只会过滤最顶层的代码行并且只过滤输入 1 项目(这是有道理的,因为它读到了,不需要继续下一个elseif)。

什么是更好的格式化方法,以便我可以同时按更广泛的标准进行过滤?

4

1 回答 1

0

首先,如果您的输入是相关的,我会将它们设为输入数组:

<input type="checkbox" name="Input[1]" value="Input 1"/> Input 1 <br>
<input type="checkbox" name="Input[2]" value="Input 1"/> Input 1 <br>

或者更恰当地说:

<input type="checkbox" name="Input[myform][1]" value="Input 1"/> Input 1 <br>
<input type="checkbox" name="Input[myform][2]" value="Input 1"/> Input 1 <br>

一旦你有了这个,你现在可以一次循环遍历你的输入:

foreach ($_GET['Input']['myform'] as $k => $v) {
    $query->addFilter("{Table Column}=".$v);
}

注意:此代码未经测试,但应提供一般概念。

这是你要找的吗?

于 2018-05-18T12:12:01.433 回答