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