复选框2d阵列


checkbox 2d array

我遇到了一个非常棘手的情况。我有一个技能列表,每个技能的级别为1,2,3,在每个技能名称旁边用复选框表示。这些技能是从数据库中提取的。如果没有技能级别,通常情况是将复选框的值指定为技能的ID(进入复选框数组)。是否有任何方法将值存储在二维数组中,以便我可以访问检查的技能以及检查的技能级别?我还需要通过Javascript验证这些技能,以便用户选择的所有技能的最高技能级别不超过5。

这是我写的代码,但我无法通过Javascript检索检查值:

$sql = "select * from Skill where Active=1";
    $res = mysql_query($sql);
    $count=0;
    echo '<tr>';
    while ($rr=mysql_fetch_assoc($res))
    {
    echo '<td>';
    echo "<input type='"checkbox'" name='"skill[][".$rr['SkillID']."]'" value='"1'" /><span></span></input>";
    echo "<input type='"checkbox'" name='"skill[][".$rr['SkillID']."]'" value='"2'" /><span></span></input>";
    echo "<input type='"checkbox'" name='"skill[][".$rr['SkillID']."]'" value='"3'" /><span>".$rr['Name']."</span></input>";
    echo '</td>';
    $count++;
    if ($count % 3 == 0)
    {
    echo '</tr><tr>';
    }
    }

任何帮助都将不胜感激。

谢谢!

这个怎么样:

<input name="skill[SKILL_ID][1]" value=1>
<input name="skill[SKILL_ID][2]" value=1>
<input name="skill[SKILL_ID][3]" value=1>
.
.
.
<input name="skill[NEXT_SKILL_ID][1]" value=1>
<input name="skill[NEXT_SKILL_ID][2]" value=1>
<input name="skill[NEXT_SKILL_ID][3]" value=1>

而不是

<input ... name='"skill[][".$rr['SkillID']."'" ... />

尝试

<input ... name='"skill[]'" id='"skill_".$rr['SkillID']."'" value='"1" ... />

然后,要确定检查的总技能水平,可以使用jQuery:

<script language="javascript">
    $("input[name=skill[]]").click(function() {
        var total = 0;
        $("input[name=skill[]]:checked").each(function() {
            total += $(this).val();
        });
        if (total > 5) {
            alert("Skill level too high.");
        }
    });
</script>