我的网站上有10个盒子,根据我的需要填写。从PHP代码我不想像这样逐个检查它们。而不是我认为在每个框中放置复选标记是一个好主意,如果我在输入字段中填写某些东西,则应该检查,以便我可以检查是否填充了多个复选框并知道填充了多少个框。
if ($input1) {$total = "1";
if ($input2) {$total = "2";
}
}
任何人都知道当我开始输入任何内容时,如何自动检查复选框?但如果我在发送之前删除了我写的内容,那么应该取消选中。或者,如果你们有一个更好的想法也会很好。
谢谢!
答案 0 :(得分:2)
为什么不将复选框命名为数组,例如:
<input type="checkbox" name="boxes[1]" />
<input type="checkbox" name="boxes[2]" />
然后你可以在php中遍历数组并单独检查每个
答案 1 :(得分:2)
这就是我理解你的问题的方法:
非常快速和肮脏的东西。您可能希望使用方括号命名输入,以便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()" />