不要为某些输入字段添加规则

时间:2016-07-21 20:53:29

标签: php html forms

所以我有输入字段,当提交时,我检查他们输入的文本是否出现在数组中:

<form method="post">
   <input type="text" name="1">
   <input type="text" name="2">
   <input type="text" name="3">
   <input type="submit" name="submit">
</form>

<?php 

if(isset($_POST['submit'] {

   $array = array('432423', '434', '3', '2', '213');

   $success = true;

   foreach ($_POST as $key=>$value) {
        if (!empty($value) && $key != "submit") {
            if (!in_array($value, $array)) {
                $success = false;
            }
        }
   }


   var_dump($success); 
   // TRUE if all contains, FLASE if any one doesn't contain

}

?>

但是,如果我想要一个输入字段不必检查数组,我该怎么做呢

3 个答案:

答案 0 :(得分:1)

然后你可能想检查另一个$key != something

E.g。

if (!empty($value) && $key != "submit" && $key != "2") {
   ...

这将排除第二个输入......

答案 1 :(得分:0)

你可以收集数组中的所有名字,只需设置名称=&#34;名称[]&#34;对于所需的输入,您将能够以阵列形式访问所有输入($ _POST [&#39;名称&#39;])

if (! empty($_POST['names']) ) {

$names = $_POST['names'];
   foreach ($names as $value) {
        if (!empty($value)) {
            if (!in_array($value, $array)) {
                $success = false;
            }
        }
   }

}

并像这样循环遍历

{{1}}

答案 2 :(得分:-1)

使用https://jqueryvalidation.org

<form id="my_form" method="post">
   <input type="text" name="a1">
   <input type="text" name="a2">
   <input type="text" name="a3">
   <input type="checkbox" name="chk1" id="chk1">
   <input type="submit" name="submit">
</form>

<script type="text/javascript">
    $("#my_form").validate({
        rules: {
            "a1": {
                required: true
            },
            "a2": {
                required: true
            },
            "a3": {
                required: true
            }, 
            "chk1": {
                required: {
                    depends: function() {
                      return !$("#chk1").is(":checked");
                    }
                }
            }
        }
    });
</script>