0

我有一个非常棘手的情况。我有一个技能列表,每个技能的级别为 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>';
    }
    }

任何帮助将非常感激。

谢谢!

4

2 回答 2

0

代替

<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>
于 2012-07-30T17:39:56.513 回答
0

这个怎么样:

<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>
于 2012-07-30T17:44:09.907 回答