在形式内<;输入类型=“;按钮“>;未提交


Within form the value of <input type="button"> not submitting

我已经搜索了这个主题,但没有人显示出与我相同的问题。

我有一个有一定价值的按钮。提交表单时,我希望将值发送到控制器,以便保存在数据库中。发送的所有其他信息都是准确的,但与按钮的值无关,保存的是0。

为什么?提前感谢!

<div class="container">
    <?php $row = $query->row(); ?>
        <div class="current"> <?php echo $row->text;?> </div>
            <form method="post" action="<?php echo base_url();?>questionnaire/process">         
               <div class="form-group">
                    <label> Número Pergunta </label> 
                    <input type="text" class="form-control" name="question" value=" <?php echo $row->text;?>">
               </div>
                <div class="btn-group btn-group-justified" role="group" aria-label="...">
                    <div class="btn-group" role="group">
                        <input type="button" name = "choice" value= "1" class="btn btn-default">
                    </div>
                    <div class="btn-group" role="group">
                        <input  type="button" name = "choice" value= "2" class="btn btn-default">
                    </div>
                </div>
                <input type="submit" value="Próxima" />
            </form>
  </div>

请参阅以下链接中的注释

"注意:在表单中,只有当按钮本身用于提交表单时,才会提交按钮及其值。"

http://www.w3schools.com/tags/att_button_value.asp

我建议将您的输入更改为类似单选按钮列表的内容,如果您需要特定的按钮,则将其设置为按钮

我希望这能帮助

按钮仅用于触发操作,不与表单数据一起提交。检查此项:http://www.w3.org/TR/html401/interact/forms.html#h-17.5

解决方案:您可以使用Radio或Dropdown来选择提交您的选择值

无线电:

<input  type="radio" name = "choice" value= "1" class="btn btn-default">
<input  type="radio" name = "choice" value= "2" class="btn btn-default">

下拉:

<SELECT name = "choice">
<option value="1">1</option>
<option value="2">2</option>
</SELECT>

正如Fox909a所提到的,只有点击提交按钮才能发送值。

如果javascript是一个不可接受的添加,您可以将值保存在一个隐藏字段中:

<div class="btn-group btn-group-justified" role="group" aria-label="...">
    <div class="btn-group" role="group">
        <input onclick="this.form.choice.value=this.value;" type="button" value= "1" class="btn btn-default">
     </div>
     <div class="btn-group" role="group">
        <input onclick="this.form.choice.value=this.value;" type="button"  value= "2" class="btn btn-default">
      </div>
 </div>
 <input type="hidden" name="choice" id="choice"/>

现场示例:http://jsfiddle.net/mLxs9j27/(选择字段在示例中没有隐藏,所以您可以看到它在工作)