0

正しいボタンをデータベースに投稿できるようにするためのサポートが必要です。しかし、ボタンの値を投稿するときに$_POSTメソッドを何と呼ぶべきかわかりません。

ここで表示できるアプリケーションがあります

アプリケーションを使用するには、以下の手順に従ってください。

  1. 「グリッドを開く」リンクをクリックしてボタン「5」を選択すると、5つのボタン「AE」が下に表示されます。
  2. ボタン「A」および「C」をクリックすると、これらのボタンが緑色に変わり、オンになったことを意味します。
  3. 次に、[質問を追加]ボタンをクリックして、行ったことを下の表の行に追加します。
  4. ここでもう一度手順1〜3を繰り返しますが、今回はボタン「7」を選択してボタン「AG」を表示し、ボタン「B」、「D」、「F」をクリックしてこれらのボタンをオンにします。

これで、2つのテーブル行があり、最初のテーブル行にはボタン「A」と「C」がオンになっており、2番目の行にはボタン「B」、「D」、「F」がオンになっていることがわかります。

私の質問は、ボタンをオンにしたものだけを$ _POSTするにはどうすればよいですか(上記の例では、「A」と「C」を投稿し、「B」、「D」、「F」を投稿する必要がありますか? $ _POSTメソッドを作成する必要がありますか?

以下は、トップコントロールと追加された行の文字ボタンを出力するコードです。

トップコントロールの文字ボタン

<table id="optionAndAnswer" class="optionAndAnswer">
<tr>
      <th colspan="2">
        Option and Answer
    </th>
</tr>
        <?php
            $a = range("A","Z");
        ?>

        <table id="answerSection">
            <tr>

        <?php
            $i = 1;
            foreach($a as $key => $val){
                if($i%7 == 1) echo"<tr><td>";
                echo"<input type=\"button\" onclick=\"btnclick(this);\" value=\"$val\" id=\"answer".$val."\" name=\"answer".$val."Name\" class=\"answerBtns answers answerBtnsOff\">";      
                if($i%7 == 0) echo"</td></tr>";
                $i++;
            }
        ?>
            </tr>
            <tr>
        <td>
        <input class="answerBtns answers answerBtnsOff" name="answerTrueName"  id="answerTrue"  type="button"   value="True"    onclick="btnclick(this);"/>
        <input class="answerBtns answers answerBtnsOff" name="answerFalseName" id="answerFalse"     type="button"   value="False"   onclick="btnclick(this);"/>
        <input class="answerBtns answers answerBtnsOff" name="answerYesName"   id="answerYes"   type="button"   value="Yes"     onclick="btnclick(this);"/>
        <input class="answerBtns answers answerBtnsOff" name="answerNoName"    id="answerNo"        type="button"   value="No"      onclick="btnclick(this);"/>
        </td>
        </tr>
        </table>
</td>
</tr>
</table>

以下は、各行に追加された文字ボタンです

    function insertQuestion(form) {   

                var context = $('#optionAndAnswer');
        var currenttotal = context.find('.answerBtnsOn').length;        



        var $tbody = $('#qandatbl > tbody'); 
        var $tr = $("<tr class='optionAndAnswer' align='center'>");
        var $td = $("<td class='extratd'>");
        var $answer = $("<div class='answer'>3. Answer:<br/></div>");


    var $this, i=0, $row, $cell;
    $('#optionAndAnswer .answers').each(function() {
        $this = $(this);
        if(i%7 == 0) {
            $row = $("<tr/>").appendTo($answer);
            $cell = $("<td/>").appendTo($row);
        }
        var $newBtn = $("<input class='answerBtnsRow answers' type='button' style='display:%s;' onclick='btnclick(this);' />".replace('%s',$this.is(':visible')?'inline-block':'none')).attr('name', $this.attr('name')).attr('value', $this.val()).attr('class', $this.attr('class')).attr('id', $this.attr('id')+'Row');

        $newBtn.appendTo($cell);

        i++;
    });


        $tr.append($td);
        $td.append($answer);
        $tbody.append($tr); 


    }

以下は、ボタンをオンまたはオフにするjquery関数です。

function btnclick(btn)
{
    var context = $(btn).parents('#optionAndAnswer');
    if (context.length == 0) {
        context = $(btn).parents('tr');
    }
    var $btn = $(btn);

$(btn).toggleClass("answerBtnsOff");
$(btn).toggleClass("answerBtnsOn");

    return false;
}
4

2 に答える 2

1

私のコメントのフォローアップとして、次のようなことを試すことができます。

「回答」(これらの数値の1つ)を押すたびに、値と一意の識別子を含む非表示の入力をフォームに追加できます。

$('.answerBtns').on('click', function() {
    // when clicking an answer button, get the value, and id, since you'll need them
    var btn     = $(this);
    var value   = btn.val();
    var id      = btn.attr('id');

    // is the button pressed and turned on?
    if ($(this).hasClass('answerBtnsOff')) {
        // append those values to the form
        var input = '<input type="hidden" value="' + value + '" name="' + id + 'value" />';
        $('#QandA').append(input);

        // toggle the button
        btn.removeClass('answerBtnsOff').addClass('answerBtnsOn');

    // do the opposite - remove the input
    } else {
        $('#QandA').remove('#' + id + 'value');
        btn.removeClass('answerBtnsOn').addClass('answerBtnsOff');
    }

});

ただし、それらの回答が特定の質問に属していることを識別するための何らかの方法が必要になります。たとえば、送信された質問ごとにカウンターを使用し、それをフィールドの名前に追加するとanswerBid1、最初の質問などのようになります。

于 2012-10-04T13:54:10.840 に答える
0

フィールドをオフにするときに、フィールドに無効な属性を追加します。

于 2012-10-04T11:10:46.000 に答える