0

まず第一に、毎日助けてくれて、質問に答えてくれてありがとう。おかげで多くの時間を節約でき、多くのことを学びました。

フォーム上のこのボタンとしましょう。

<button type="button" value="Adventurous" name="adv" id="adv">Adventurous</button>
<button type="button" value="Discovery" name="disc" id="disc">Discovery</button>
<button type="button" calue="Easy-going" name="easy" id="easy">Easy-going</button>

ユーザーがボタンをクリックして、この例でどのように感じるかを指定すると、jquery に次のコードがあり、ボタンの状態をチェック済みとして変更し、クラスを変更します (別の色などで表示されます)。

$(".tailor_field .tailor_mood_btn button").click(function() {
         var checked = $(this).attr('checked');
         $the_image = $(this).find("img");
        if(checked){
            $(this).removeClass("mood_on");
            $(this).attr('checked', false);
            $the_image.attr("src", templateDir+"/images/btn_on.png");
        }
        else{
            $(this).addClass("mood_on");
            $(this).attr('checked', true);
            $the_image.attr("src", templateDir+"/images/btn_off.png");
        }
    });

ユーザーが送信を押したときに、サーバー側(php)でユーザーがクリックしたボタンを確認したいですか?

次に、ボタンを動的に挿入したいと思います。つまり、DBに文字列を配置し、それを配列に展開し、各要素をループしてボタンなどを作成します。ボタンの数とその名前が最初からわからない場合、どうすれば確認できますか? たぶんセッションで(別の解決策があれば避けたい)?

どうもありがとう!

4

2 に答える 2

1

最良の答えは、チェックボックスのリストを使用することだと思います。それは彼らが作られたものです。

ただし、特別なボタンを使用したい場合は、実際のボタンではなく、非表示のフィールドを入力として使用する 1 つの方法を次に示します。要素「ボタン」にチェック属性があるかどうかはわかりません。

入力の値を変更するために単純な小さな JavaScript を使用しただけです。現在の関数を適応させることができます。クリック可能なボタンに新しい ID を与え、データベースの名前に「_button」を追加したことに注意してください。

<?php

$string = "Adventerous,Discovery,Easy-Going"; /* this is from your database */
$delimiter = ",";
$button_values = explode($delimiter, $string);

?>
<html>
<body>
<script type="text/javascript" >
function checkbutton(id) {
         var val = document.getElementById(id).value;
         if (val == 0) 
            val = 1;
         else 
            val = 0;

         document.getElementById(id).value = val;
         alert("Clicked: " + id);
}
</script>
<form action="form-catch.php" method="post">
<?php

foreach($button_values as $value) {
    echo '<button type="button" 
                onClick="checkbutton(\''.$value.'\')">'.$value .'</button>
    <input type="hidden" name="'.$value.'" id="'. $value .'" value="0" ><br>';

}

?>
<input type="submit" value="submit">
</form>
</body></html>

次に、サーバー上で、フォームは文字列からボタン名を送信し、そのボタンがチェックされている場合は 0 または 1 を送信します。

<?php 
/* quick form checker to show what was clicked in the other form */
foreach($_POST as $key => $val)
    echo "<br>    $key : $val";   
?>

正確なコードを使用しなくても、コンセプトが正しい方向に進むことを願っています。

1) フォーム入力としてデータを送信します。

2) 送信されたものをループして、設定値を確認します。

于 2013-04-18T12:48:37.570 に答える