php - 使用 php 和 javascript 时在复选框名称中使用方括号?

标签 php javascript forms checkbox brackets

我有一个带有复选框的表单,如下所示:

    <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/

相关文章:

javascript - Chrome 和 Firefox 不记得用户 session

html - 如何在 Ruby on Rails 测试中断言输入元素为空

Mysql显示全部不只是选择

php - 将 .JSON 导入 MySQL

PHP 允许在 switch 语句中使用无效代码

c# - 如何在asp上调用javascript函数和c#代码:button?

javascript - Jquery 事件页面链接

html - 单击时单选按钮不起作用

PHP、MySQL 和 jQuery : Display select options dynamically

javascript - 如何通过 JavaScript 提交表单?