我们有多个复选框链接到多个隐藏字段并使用相同名称。我们怎样才能只发送所选复选框的值?
PHP
<input type"checkbox" name="<?echo $filename;?>_<?echo $variable;?>"
id="filename_<?echo $variable;?>" value="1">
<input type="hidden" name="item_<?echo $filename;?>"
value="<?echo $quantity;?>">
如果选择了两个或多个具有相同名称的复选框,那么我们如何才能获得每个隐藏输入的正确值而不是最后一个的值?
我们生成的html
<input type"checkbox" name="idfilename_1"
<input type="hidden" name="item_idfilename" value="7">
<input type"checkbox" name="idfilename_2"
<input type="hidden" name="item_idfilename" value="5">
<input type"checkbox" name="idfilename_3"
<input type="hidden" name="item_idfilename" value="11">
答案 0 :(得分:0)
你可以像这样创建一个数组:
<input type="checkbox" name="item_idfilename[]" value="7">
<input type="checkbox" name="item_idfilename[]" value="5">
<input type="checkbox" name="item_idfilename[]" value="11">
这样您就可以获得已选中复选框的列表。
答案 1 :(得分:0)
您可以为复选框和隐藏使用数组。 有一个名为check [1]的复选框,选中[2],选中[3]和hiddens,名为item_hidden [1],item_hidden [2]等。你可以将每个复选框与隐藏输入相关联。
所以你的输出将是:
<input type"checkbox" name="idfilename[1]" value="1">
<input type="hidden" name="item_idfilename[1]" value="7">
<input type"checkbox" name="idfilename[2]" value="1">
<input type="hidden" name="item_idfilename[2]" value="5">
<input type"checkbox" name="idfilename[3]" value="1">
<input type="hidden" name="item_idfilename[3]" value="11">
服务器端,您将循环idfilename,如果设置了值(因此已选中复选框),您将从item_idfilename数组中获取值。
答案 2 :(得分:0)
Normaly以这种方式完成
<input type"checkbox" name="idfilename_1">
<input type="hidden" name="item_idfilename_1" value="7">
只有选中的一次将在POST数组中有一个字段/索引。
在PHP端获取所选复选框中的字段。
如果知道例如存在array_key,例如idfilename_1
然后您可以从$_POST['item_idfilename_1']
获取值,如果不离开它的话。
请记住:只有选中的复选框才会在POST阵列中显示一个字段!
答案 3 :(得分:0)
试试这个:
var $checkedInput = $('input[type=checkbox]:checked');
if($checkedInput){
var hiddenValue= $checkedInput.next('input[type=hidden]').val();
}
---------------或-------------------
var $checkedInput= $('input[type=checkbox]:checked').next('input[type=hidden]')
.map(function() {
return $(this).val();
}).get();
根据您的代码,您将获得["7", "5", "11"]
之类的数组。
答案 4 :(得分:0)
我使用next()
获取下一个节点值
$('[type~=checkbox]').change(function(){
alert($(this).next().val());
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" name="idfilename_1">
<input type="hidden" name="item_idfilename" value="7">
<input type="checkbox" name="idfilename_2">
<input type="hidden" name="item_idfilename" value="5">
<input type="checkbox" name="idfilename_3">
<input type="hidden" name="item_idfilename" value="11">
&#13;