使用 JQuery 从模态(引导)传递输入数组



我有一个表单,我想用一个模态对话框填充。它使用输入数组,但由于这些输入位于<表单>标签之外,因此不会发布它们。

这是模态代码:

<div class="modal fade" id="Modal" tabindex="-1" role="dialog" aria-labelledby="ModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-body">
<div class="form-row field" id="auteur1">
<div class="form-group col-md-5" style="margin-bottom:0">
<input autocomplete="off" class="form-control auto_c" name="name_add[]" type="text" />
</div>
<div class="form-group col-md-4" style="margin-bottom:0">
<input type="text" class="form-control" name="firstname_add[]" />
</div>
<input type="hidden" name="id_add[]" value="">
</div>
</div>
<div class="modal-footer">
<button type="button" class="save btn btn-qvq">Submit</button>
</div>
</div>
</div>
</div>

可以有很多行,这就是使用数组的原因。

我想填写位于<表单内的 和=" 数组=">标签:

<input type="hidden" id="name" name="name[]" value="">
<input type="hidden" id="firstname" name="firstname[]" value="">
<input type="hidden" id="id" name="id[]" value="">

我想它应该是喜欢的东西,但它不起作用。 (仅名称示例(

$(function() {
$('.save').on('click', function() {
$.each($("input[name='name_add[]']"), function(idx, value) {
$("input[name='name[]']").eq(idx).val(value);
});
}
}

任何帮助将不胜感激。谢谢。

编辑

根据 Steph74 的答案,我尝试过:

$('.save').on('click', function(){
$.each($('input[name="name_add[]"]'), function(idx, v) {
$('input[name="name[]"]').eq(idx).val(v.value)
})
})

name[] 现在已填充,但如果有多个 name_add[] 输入,则仅填充第一个值

测试此代码:

$('.save').on('click', function(){
$.each($('input[name="name_add[]"]'), function(idx, v) {
$('input[name="name[]"]').eq(idx).val(v.value)
})
})

嗨,我不明白到底是什么问题,但是如果您想使用模态字段添加多个字段,您可以使用类似的东西:

<div class="modal fade" id="Modal" tabindex="-1" role="dialog" aria-labelledby="ModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-body">
<div class="form-row field" id="auteur1">
<div class="form-group col-md-5" style="margin-bottom:0">
<input autocomplete="off" class="form-control auto_c" name="name_add[]" type="text"/>
</div>
<div class="form-group col-md-4" style="margin-bottom:0">
<input type="text" class="form-control" name="firstname_add[]"/>
</div>
<input type="hidden" name="id_add[]" value="">
</div>
</div>
<div class="modal-footer">
<button type="button" class="save btn btn-primary" onclick="addItem()">Submit</button>
</div>
</div>
</div>

<script>
function addItem() {
var name = $('#Modal input[name="name_add[]"]').val()
var firstname = $('#Modal input[name="firstname_add[]"]').val()
$('form').append($('<input type="hidden" id="name" name="name[]" value="">').val(name))
$('form').append($('<input type="hidden" id="firstname" name="firstname[]" value="">').val(firstname))
$('form').append($('<input type="hidden" id="id" name="id[]" value="">'))
}

您必须从表单中删除隐藏字段,并且可以使用函数 javascript 附加它们。 如果我们添加两个项目:

  1. 姓名:约翰,名字:史蒂夫
  2. 姓名:Jhon2,名字:史蒂夫2

我们可以在提交表单后使用 php 获取它们

  1. echo $_REQUEST[name][0].$_REQUEST[firstname][0] ==> Jhon Steeve
  2. echo $_REQUEST[name][1].$_REQUEST[firstname][1] ==> jhon2 Steeve2

如果问题已解决,请告诉我确切的问题是什么

如果我们从模态框提交,我们只会得到第一个数组值,否则相同的代码可以正常工作。 当我们从模态框发送数组时,我们只收到第一个数组值。 这是我们的代码:

在表单页面中:

<div class="form-group">
<label class="col-sm-4 control-label">Label-1</label>
<div class="col-sm-4">
<input type="number" name="abc[]" class="form-control">
</div>
<div class="col-sm-3">
<input type="number" name="xyz[]" class="form-control">
</div>
<div class="col-sm-1">
<input type="button" onclick="floor();" class="btn btn-default" value="+" />        
</div>
</div>
<table>
<tbody id="atbody"></tbody>
</table>

我们接收数据的地方:

print_r($_REQUEST['abc']);
print_r($_POST['xyz']);
die;

输出:Array ( [0] => 2 ) Array ( [0] => 3 )

最新更新