1

これはばかげているように聞こえるかもしれませんが、このようなものが必要です。たとえば、Web ページに 10 個のスキルを表示しました。それぞれがフォームの非表示の入力です。下部に「編集」ボタンがあります。それをクリックすると、各スキル名の横にチェックボックスが表示され、ユーザーがチェック/チェックを外してフォームを送信できるようになります。

現在の私のphpコードスニペットは次のようなものです:

<?php echo '<span id="skillSet">';
for($x=0;$x<count($userSkills);$x++)
        echo '<div class="skillName"><input type="hidden" name="skill[]" value="' . $userSkills[$x] . '" title="Click to select">' . $userSkills[$x] . "</div>";
echo '</span>'; ?>

<input type="button" value="Edit" onClick="someFunction()">

必要な結果を得るために、関数の代わりに何を入れることができますか? また、編集を実装できる他の方法があれば教えてください。

前もって感謝します!

4

3 に答える 3

1

input_skill次のように、すべての入力に classを指定します。

echo '<div class="skillName"><input type="hidden" name="skill[]" value="' . $userSkills[$x] . '" title="Click to select" class="input_skill">' . $userSkills[$x] . "</div>";

次に、この関数を使用して型を変更します。

<script type="text/javascript">
function ShowSkillCheckboxes() {
    var skills = document.getElementsByClassName("input_skill");
    for(var i=0; i<skills.length; i++)
        skills[i].setAttribute("type","checkbox");
}
</script>

checkedチェックボックスを隠しタイプの入力に戻すと、要素がチェックボックスになることによって得られる特別な値が消えることに注意してください。さらに、非表示の入力は Web ページにまったく表示されません。0x0 px の寸法であると言えます。これは、[編集] ボタンをクリックすると、これらのチェックボックスが表示され、レイアウトが拡張されることを意味します。

于 2013-06-24T11:06:14.530 に答える
1

入力してくれてありがとう、しかし私はそれを回避する方法を見つけました。また、非表示の入力をまったく使用しないことになったので、お詫び申し上げます。興味のある方は、この関数でうまくいくはずです:

      function editSkills()
        {
            var skills = document.getElementsByClassName("skillName");
            for(var i=0;i<skills.length;i++)
            {
                var value = skills[i].innerHTML;
                skills[i].innerHTML = '<input type="checkbox" checked name="skill[]" value="' + value + '" title="Toggle Selection">' + value;
            }
            document.getElementById('EditOrApply').innerHTML='<input type="submit" value="Apply Changes">';
        }

その最後の行は、フォームの「編集」ボタンを「送信」ボタンに変換します。

于 2013-06-24T11:53:38.107 に答える
0

彼が私にくれた-1は、貪欲で不公平な人々の通常の行動です. おそらく、彼は以前のユーザーと同じようにそれを行いました (彼の低い評判を利用した)。とにかく、これに下線を引きたいのは、復讐のためではなく、ユーザーに公正な方法で回答を評価してもらうためです

このようなもの?jsfiddle

$userSkills = array('pasta','maccheroni','pizza');
echo '<span id="skillSet">';
for($x=0;$x<count($userSkills);$x++)
        echo '<div class="skillName"><input type="hidden" name="skill[]" value="' . $userSkills[$x] . '" title="Click to select">' . $userSkills[$x] . "</div>";
echo '</span>'; ?>


<input type="button" value="Edit" onClick="$('input:hidden').attr('type','checkbox');">

jquery が必要です ( <script src="http://code.jquery.com/jquery-1.9.1.js"></script>)

完全なジャバスクリプト

<input type="button" value="Edit" onClick="show(document.getElementsByTagName('input'))">

<script>
function show(val){
    for(i=0;i<val.length-1;i++){
            if(val[i].type=='hidden'){
                val[i].type='checkbox';
            }
        }
    }
</script>
于 2013-06-24T11:10:59.163 に答える