我有一个带有复选框的表单,如下所示:
<input type="checkbox" name="type[]" value="1" />Fast Food<br>
<input type="checkbox" name="type[]" value="2" />Table Service<br>
<input type="checkbox" name="type[]" value="3" />Cafeteria<br>
当我在名称 (type[]) 中使用方括号时,我的 php 工作:
$type=$_POST['type'];
echo "types are:";
for ( $counter = 0; $counter < sizeof($type); $counter += 1) {
echo "<br>".$type[$counter];
}
但是我的 javascript 不工作:
var f = document.addform;
for (var i=0;i<f.type.length;i++){
if(f.type[i].checked==true){
break;
}
if(i==(f.type.length-1)){
alert("No categories entered!");
valid=false;
}
}
但是,如果我去掉括号:
<input type="checkbox" name="type" value="1" />Fast Food<br>
然后 PHP 不起作用,但 javascript 起作用。
这是怎么回事?我应该使用什么?
谢谢。
最佳答案
PHP 有一个不寻常的系统来处理多个具有相同名称的表单控件,它希望名称包含 []
但它不会在变量名称中使用它们。
JavaScript 没有这个问题。该属性仍将带有括号。
当然,方括号在JS中有特殊含义,不能用点号来访问属性。
f['type[]'][i].checked
关于php - 使用 php 和 javascript 时在复选框名称中使用方括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3207469/