我有一个动态表单,可能有重复的输入名称。
$(".add_more_staff").on("click", function(){
var $newMember = $(this).siblings('.company_members').clone();
$newMember.insertBefore($(this));
})
a, input{
display: block;
margin-bottom: 5px;
}
input{
cursor: pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="#" method="post">
<div class="company_members">
<input class="staff_name" type="text" name="name" required placeholder="name" />
<input class="staff_mobile" type="text" name="mobile" required placeholder="mobile" />
<hr />
</div>
<input type="button" class="add_more_staff" value="Add more staff" />
<input type="submit" value="register_company_staffs" />
</form>
在上面的代码中,如果您点击mobile
按钮一次,则会有两个名为name
(或Add more staff
)的输入。
现在我想知道,我应该如何在PHP代码中获取它?根据一些测试,$_POST['mobile']
包含最后一个输入值。那么如何才能在PHP中获得所有输入值?
name="mobile-n"
(n = 1, 2 ..
) name="mobile[]"
等输入使用数组名吗?答案 0 :(得分:0)
试试这样:
<div class="company_members">
<input class="staff_name" type="text" name="name[]" required placeholder="name" />
<input class="staff_mobile" type="text" name="mobile[]" required placeholder="mobile" />
</div>
PHP中的:
$staff_names = $_POST['name'];
$staff_mobiles = $_POST['mobile'];
答案 1 :(得分:0)
尝试使用jquery,在附加html时,可以添加动态增量变量到
staff_name_1,staff_name_2,staff_mobile_1,staff_mobile_2
通过这种方式,您可以轻松保存或定义唯一名称,就像我在简单示例中所示:
var a=0;
$(".add_more_staff").on("click", function(){
$(".company_members").each(function(){
a++;
$(".staff_name").attr('name', $(".staff_name").attr('name')+a);
});
});
希望你能理解我的想法。
答案 2 :(得分:0)
请尝试下面它将包含组中的数据,因此您可以在发布数据后轻松循环它,并且您的JQuery代码似乎很好。
<div class="company_members">
<input class="staff_name" type="text" name="data[0][name]" required placeholder="name" />
<input class="staff_mobile" type="text" name="data[0][mobile]" required placeholder="mobile" />
</div>
<div class="company_members">
<input class="staff_name" type="text" name="data[1][name]" required placeholder="name" />
<input class="staff_mobile" type="text" name="data[1][mobile]" required placeholder="mobile" />
</div>