如何处理重复的输入名称?

时间:2018-05-28 05:12:51

标签: javascript php jquery html

我有一个动态表单,可能有重复的输入名称。

$(".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中获得所有输入值?

  • 我应该为jQuery中的新输入设置不同的名称,例如name="mobile-n" n = 1, 2 ..
  • 我应该对name="mobile[]"等输入使用数组名吗?
  • 或者什么?

3 个答案:

答案 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>