2

I am using https://github.com/DubFriend/jquery.repeater (jquery repeater) to clone the form field. It is successfully cloning the field, however, when form is submitted the field is not being sent.

So, far I found that input field outside the data-repeater-item are being sent.


    <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.repeater/1.2.1/jquery.repeater.min.js"></script>

    <?php 
            if ($_SERVER["REQUEST_METHOD"] == "POST") {
                print_r($_POST);
            }
    ?>

    <h2>Repeater</h2>
    <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" class="repeater" method="POST" enctype="multipart/form-data">
        <input type="text" name="full_name">
      <div data-repeater-list>
        <div data-repeater-item>

          <input type="text" name="text-input" value="A"/>

          <select name="select-input">
            <option value="A" selected>A</option>
            <option value="B">B</option>
          </select>


          <input data-repeater-delete type="button" value="Delete"/>
        </div>
      </div>
      <input data-repeater-create type="button" value="Add"/>
      <button type="submit">Submit</button>
    </form>




    <script>
    $(document).ready(function () {
        'use strict';

        $('.repeater').repeater({
                show: function () {
                    $(this).slideDown();
                },
                hide: function (deleteElement) {
                    if(confirm('Are you sure you want to delete this element?')) {
                    $(this).slideUp(deleteElement);
                    }
                }
        });
    });
    </script>
Aayush Dahal
  • 856
  • 1
  • 17
  • 51

1 Answers1

8

Actually you need to pass a value for data-repeater-list. Like

<div data-repeater-list="group-a"> //this will be the name for these repeated fields

After this your submitted data will look like:

Array
(
    [full_name] => John Doe
    [group-a] => Array
        (
            [0] => Array
                (
                    [text-input] => A
                    [select-input] => A
                )

        )

)
Saroj Shrestha
  • 2,696
  • 4
  • 21
  • 45