PHP GET从URI参数表单多个复选框数组'已检查'状态

时间:2016-05-19 11:36:36

标签: forms checkbox filter parameters

我想通过将值传递给URI来使用表单来进行参数过滤。具体来说,这个表单的一部分需要一个参数集的多个复选框,我称之为'my-checkbox-parameter'

我有什么

  • 带有复选框字段的基本表单,通过GET方法发布值
  • 这样可以正确发布我期望的值

我的代码:

<form id="results-filters" class="form-inline" action="form.php"  method="GET">
    <div class="form-group">
        <label class="checkbox-inline">
            <input type="checkbox" id="val3" value="val1" name="my-checkbox-parameter[]" class="form-control">
            Value 1
        </label>
        <label class="checkbox-inline">
            <input type="checkbox" id="val2" value="val2" name="my-checkbox-parameter[]" class="form-control">
            Value 2
        </label>
        <label class="checkbox-inline">
            <input type="checkbox" id="val3" value="val3" name="my-checkbox-parameter[]" class="form-control">
            Value 3
        </label>
    </div>
    <button type="submit" class="btn btn-default">
        Filter Results
    </button>
</form>

我被困在哪里

  • 根据URL中的参数,使复选框字段显示“已检查”状态。例如,如果我的URI是: /form.php?my-checkbox-parameter [] = val1&amp; my-checkbox-parameter [] = val2 ,我该如何确保字段值为检查“值1”和“值2”? JavaScript / AJAX是唯一的方法吗?
  • 奖励积分,不是一个超级优先级,而是一个“很高兴”...有没有更好的方法来处理URI中的复选框值数组?例如,如果我有10个复选框字段,那么带有这些参数的连接URI可能会很长......

提前致谢!

1 个答案:

答案 0 :(得分:1)

首先:

$checked= array();
$checked=$_GET['my-checkbox-parameter'];

然后:

<input type="checkbox" id="val1" value="val1" name="my-checkbox-parameter[]" class="form-control" <?php if(in_array("val1", $checked))echo "checked"; ?> >Value 1

因此,如果获取参数中存在val1,则将选中复选框。

对所有复选框都这样做,它应该没问题。

对于第二个问题:实际上你用my-checkbox-parameter []做得很好,这是用PHP做的常用方法。 But you can check this question for more ways.