Php 当涉及到将隐藏输入与按钮关联时,下面的代码是否有效?

Php 当涉及到将隐藏输入与按钮关联时,下面的代码是否有效?,php,javascript,jquery,Php,Javascript,Jquery,当涉及到用相关按钮显示正确的隐藏输入时,我需要一些帮助 我有一个应用程序,你可以查看 请按照以下步骤使用应用程序: 点击“开放网格”链接并选择按钮“5”,您将看到下面出现5个按钮“A-E” 单击按钮“A”和“C”,这些按钮将变为绿色,表示它们已打开 现在单击“添加问题”按钮将您所做的添加到下面的表行中 现在,请再次重复步骤1-3,但这次选择按钮“7”,您将看到按钮“A-G”,并单击按钮“B”、“D”和“F”,以打开这些按钮 现在您将看到有两个表行,第一个表行打开了按钮“A”和“C”,第二行打开了

当涉及到用相关按钮显示正确的隐藏输入时,我需要一些帮助

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

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

  • 点击“开放网格”链接并选择按钮“5”,您将看到下面出现5个按钮“A-E”
  • 单击按钮“A”和“C”,这些按钮将变为绿色,表示它们已打开
  • 现在单击“添加问题”按钮将您所做的添加到下面的表行中
  • 现在,请再次重复步骤1-3,但这次选择按钮“7”,您将看到按钮“A-G”,并单击按钮“B”、“D”和“F”,以打开这些按钮
  • 现在您将看到有两个表行,第一个表行打开了按钮“A”和“C”,第二行打开了按钮“B”、“D”和“F”

    现在我只想发布(使用$\u post方法)只打开的按钮。现在我发现您不能使用$\u post方法发布按钮,但您可以做的是为每个按钮创建隐藏的输入字段并发布它们,如果按钮处于打开状态,则隐藏输入的值为1,如果按钮处于关闭状态,则值为0

    但我不确定我是否正确编码,所以我的问题是,是否有人可以查看下面的代码,并说明我下面的代码是否可以完成工作,或者是否需要进行一些调整才能正常工作?我担心相关按钮的隐藏输入不正确:

    下面是为顶部选项和答案控制输出字母按钮及其隐藏输入的代码:

     <table id="optionAndAnswer" class="optionAndAnswer">
        <tr>
            <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=\"answerName[$val]\" class=\"answerBtns answers answerBtnsOff\">";    
                    echo"<input type=\"hidden\" value=\"0\" id=\"hiddenAnswer".$val."\" name=\"hidden[$val]\" class=\"offButtons\">";   
                    if($i%7 == 0) echo"</td></tr>";
                    $i++;
                }
            ?>
                </tr>
                <tr>
            <td>
            <input class="answerBtns answers answerBtnsOff" name="answerName[True]"  id="answerTrue"    type="button"   value="True"    onclick="btnclick(this);"/>
            <input class="offButtons" name="hidden[True]" id="hiddenAnswerTrue" value="0" type="hidden"/>
            <input class="answerBtns answers answerBtnsOff" name="answerName[False]" id="answerFalse"   type="button"   value="False"   onclick="btnclick(this);"/>
            <input class="offButtons" name="hidden[False]" id="hiddenAnswerFalse" value="0" type="hidden"/>
            <input class="answerBtns answers answerBtnsOff" name="answerName[Yes]"   id="answerYes"     type="button"   value="Yes"     onclick="btnclick(this);"/>
            <input class="offButtons" name="hidden[Yes]" id="hiddenAnswerYes" value="0" type="hidden"/>
            <input class="answerBtns answers answerBtnsOff" name="answerName[No]"    id="answerNo"      type="button"   value="No"      onclick="btnclick(this);"/>
            <input class="offButtons" name="hidden[No]" id="hiddenAnswerNo" value="0" type="hidden"/>
            </td>
            </tr>
            </table>
            </td>
            </tr>
            </table>
    

    在测试时,我通常将隐藏的输入转换为文本输入,以便查看值

    您还可以使用Chrome JS控制台,在那里您可以键入一些JS,如$(“#input_id”).val();你会得到它的价值

        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, $row, $cell;
            $('#optionAndAnswer .answers').each(function(i, v) {
                $this = $(this);
                if(i%7 == 0) {
                    $row = $("<tr/>").appendTo($answer);
                    $cell = $("<td/>").appendTo($row);
                }
    
                var v = $this.val();
                var a = { name:$this.attr('name'), value:$this.val(), class:$this.attr('class'), id:$this.attr('id')+'Row' };
                var h = $this.is(':visible')?'inline-block':'none'
                var $newBtn = $("<input type='button' style='display:" + h + "' onclick='btnclick(this);' />").attr(a);
    
                var $newHdn = $("<input type='hidden' value='0' id='hiddenAnswer" + v  + "' name='hidden[" + v + "]' class='offButtons' />");
    
                $newBtn.appendTo($cell);
                $newHdn.appendTo($cell);
            });
    
    
            $tr.append($td);
            $td.append($answer);
            $tbody.append($tr); 
    
    
    
        }
    
        function btnclick(btn)
        {
            var context = $(btn).parents('#optionAndAnswer');
            if (context.length == 0) {
                context = $(btn).parents('tr');
            }
            var $btn = $(btn);
            var value = btn.value;
    
        $(btn).toggleClass("answerBtnsOff");
        $(btn).toggleClass("answerBtnsOn");
    
            var hiddenId = '#hiddenAnswer'+btn.value;
            if ( $(btn).hasClass("answerBtnsOff") )
            {
                $(hiddenId).val('0');
                $(hiddenId).toggleClass('offButtons');
                $(hiddenId).toggleClass('onButtons');       
            }
            else
            {
                $(hiddenId).val('1');
                $(hiddenId).toggleClass('onButtons');
                $(hiddenId).toggleClass('offButtons');
            }   
    
            $('.answertxt', context).val(context.find('.answerBtnsOn').length > 0 ? context.find('.answerBtnsOn').length : 0);
    
            return false;
        }