我已经搜索了这个主题,但没有人显示出与我相同的问题。
我有一个有一定价值的按钮。提交表单时,我希望将值发送到控制器,以便保存在数据库中。发送的所有其他信息都是准确的,但与按钮的值无关,保存的是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/(选择字段在示例中没有隐藏,所以您可以看到它在工作)