0

私は非常にトリッキーな状況にあります。各スキル名の横にチェックボックスとして表示されるレベル 1、2、3 のスキルのリストがあります。これらのスキルはデータベースから引き出されます。スキル レベルがない場合、通常は、チェックボックスの値をスキルの ID に割り当てます (チェックボックス アレイに入ります)。チェックされたスキルとチェックされたスキルレベルにアクセスできるように、値を 2 次元配列に格納する方法はありますか? また、ユーザーが選択するすべてのスキルの最大スキル レベルが 5 を超えないように、Javascript を介してこれらを検証する必要があります。

これは私が書いたコードですが、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 に答える