0

我需要帮助才能将正确的按钮发布到数据库中。但是我不知道在发布按钮的值时要调用什么 $_POST 方法。

我有一个应用程序,你可以在这里查看

请按照以下步骤使用应用程序:

  1. 单击“Open Grid”链接并选择按钮“5”,您将看到下面出现5个按钮“AE”。
  2. 单击按钮“A”和“C”,这些按钮将变为绿色,表示它们已打开。
  3. 现在单击“添加问题”按钮将您所做的事情附加到下面的表格行中。
  4. 现在请再次重复步骤 1-3,但这次选择按钮“7”,您将看到按钮“AG”,然后单击按钮“B”、“D”和“F”以打开这些按钮。

现在您将看到有 2 个表格行,第一个表格行打开了按钮“A”和“C”,第二行打开了按钮“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

作为我评论的后续行动,您可以尝试以下操作:

每次按下“答案”(其中一个数值)时,您都可以在表单中添加一个隐藏输入,其中包含该值和唯一标识符:

$('.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 回答