自动检查输入是否已填写

时间:2012-02-29 23:53:43

标签: php html

我的网站上有10个盒子,根据我的需要填写。从PHP代码我不想像这样逐个检查它们。而不是我认为在每个框中放置复选标记是一个好主意,如果我在输入字段中填写某些东西,则应该检查,以便我可以检查是否填充了多个复选框并知道填充了多少个框。

if ($input1) {$total = "1"; 
    if ($input2) {$total = "2";
    }
}

任何人都知道当我开始输入任何内容时,如何自动检查复选框?但如果我在发送之前删除了我写的内容,那么应该取消选中。或者,如果你们有一个更好的想法也会很好。

谢谢!

3 个答案:

答案 0 :(得分:2)

为什么不将复选框命名为数组,例如:

<input type="checkbox" name="boxes[1]" />
<input type="checkbox" name="boxes[2]" />

然后你可以在php中遍历数组并单独检查每个

答案 1 :(得分:2)

这就是我理解你的问题的方法:

  • 您有10个文字输入
  • 您想知道在提交时有多少实际输入
  • 您的想法是为每个文本输入分配一个复选框输入,以便在输入有文本时检查相应的复选框,并在输入没有文本时取消选中

非常快速和肮脏的东西。您可能希望使用方括号命名输入,以便php将该参数解释为数组。然后你可以迭代一个数组,如果设置了值,你可以计算。

<html>
<body>
<?php
  if(isset($_POST['input'])) {
  $count = 0;
  foreach($_POST['input'] as $value) {
      if($value) {
         $count++;
      }
  }
  echo $count;
 }
?>
<form action="testinputs.php" method="post">
<input name="input[]" value="" type="text">
<input name="input[]" value="" type="text">
<input name="input[]" value="" type="text">
<input name="input[]" value="" type="text">
<input name="input[]" value="" type="text">
<input name="input[]" value="" type="text">
<input type="submit"/>
</form>
</body>
</html>

如果你想在客户端这样做,那么我会采取像jQuery这样的东西,看看我的页面上有多少输入包含其中的任何文本。

答案 2 :(得分:2)

你可以用JavaScript做到这一点。基本上,如果输入文本的数量与复选框的数量相同,那么您可以使用此函数,例如:

function change() {

var input_lengths = document.getElementsByName("textArray[]");

for(var i= 0; i < input_lengths.length;i++) {

    if(document.getElementsByName("textArray[]").item(i).value != "") {

        document.getElementsByName("checkArray[]").item(i).checked = true;

    }

} 

}

你的html可能是:

    <input type="text" name="textArray[]" value="" />
<input type="text" name="textArray[]" value="" />
<input type="text" name="textArray[]" value="" />
<input type="text" name="textArray[]" value="AAA" />

<input type="checkbox" name="checkArray[]" value="" />
<input type="checkbox" name="checkArray[]" value="" />
<input type="checkbox" name="checkArray[]" value="" />
<input type="checkbox" name="checkArray[]" value="" />

<input type="button" value="test" onclick="javascript:change()" />