我有一个表单,其中包含一系列单选按钮和复选框,用于在将用户发送到支付网关之前计算成本。
输入并不稀奇,除非我使用过'值'当任何输入被更改时,关联价格的属性,编辑表格以显示所选择的选项,它们的相关价格,然后是总数。
<input type="checkbox" id="cb1" value="100" name="cb1">
<input type="checkbox" id="cb2" value="200" name="cb2">
<input type="radio" id="rd1" value="500" name="rdo">
<input type="radio" id="rd2" value="500" name="rdo">
我有点愚蠢,并没有提前考虑如何在确定用户选择的内容时提交实际处理完成的表单。
发送最终总数通过很好,因为它存储在只读输入中。但是,我还需要保存到数据库中选择了哪个复选框以及选择了哪个无线电。
复选框是可管理的,因为它们只有$ _POST中的值,如果它们被勾选,所以我可以循环遍历它们并且只保留其值不为空的那些。
有关如何处理单选按钮的任何想法?如果不这样做,重写表格是现阶段的最后手段。
答案 0 :(得分:1)
这是jquery
中的解决方案你需要做的就是给那些必须列出的单选按钮或复选框添加一个类名(如果选中它们),这个类名将帮助你用一个函数来操作它们 请c以下代码并相应修改,希望这有助于你
<input class="somename" type="checkbox" id="cb1" value="100" name="cb1" >
<input class="somename" type="checkbox" id="cb2" value="200" name="cb2">
<input class="somename" type="radio" id="rd1" value="500" name="rdo">
<input class="somename" type="radio" id="rd2" value="500" name="rdo">
<input type="button" id="finalClick" > // something like your submit button
Jquery的
$('#finalClick').bind("click",function(e){
var list="";
$(".somename").each(function(e){
if($(this).is(':checked'))
list = list + $(this).attr('id')+" ";
});
alert(list); // You can save this in some hidden field so that you can use it in your code
});
小提琴
答案 1 :(得分:0)
对于复选框,您可以将值存储在数组中,这样就不会处理一堆不同的变量名。 (如果您通过客户端代码访问ID属性,则ID属性需要不同。)
<input type="checkbox" id="cb1" value="100" name="cb[1]">
<input type="checkbox" id="cb2" value="200" name="cb[2]">
发送表单后,只有列表中要检查的值应显示在结果数组中。通过$_POST['cb']
访问值并将其打印出来应该产生如下内容:
Array
(
[2] => 200
)
密钥2
表示已选中name="cb[2]"
复选框。
对于单选按钮,我对两个按钮的值都是相同的。这可以是设计的,但是单选按钮通常用于从一组不同的值中选择单个值。发送单选按钮元素时,只有选定的值将传递给元素名称下的脚本。在您的情况下,无论选择哪一个,您都会在500
中获得$_POST['rdo']
的值。因此,您并没有明确的方法来确定选择了哪个单选按钮。