I am generating some forms which i have grouped into groups of four form fields like so http://options-html5.herokuapp.com/ --> see other information tab
This is my jquery code that generates the form
//Add Partner
$('.partner_create_button').on('click',function(){
$('<article class="crud_item">
<span class="delete_partner">Delete Partner</span><br/>
<label class="name_label">Partner Name</label>
<input class="text_element" type="text" name="partner_crud[]" placeholder="partner name" />
<label class="name_label">Partner URL</label>
<input class="text_element" type="text" name="partner_crud[]" placeholder="partner url"/>
<label class="name_label">Partner Logo</label>
<input class="text_element"type="text" name="partner_crud[]" placeholder="partner logo" />
<span class="get_image_from_the_media_centre">Get Image From Media Centre</span>
<label class="name_label">Partner Status</label>
<select class="text_element" name="partner_crud[]">
<option value="partner status" selected>Select your option</option>
<option>Published</option>
<option>Pending Approval</option>
<option>In Future</option>
</select>
</article>').appendTo('.partners_holder');
However when i submit the form and process the $_POST
i get this
[partner_crud] => Array
(
[0] => partner name
[1] => partner url
[2] => partner logo
[3] => partner status
[4] => partner name
[5] => partner url
[6] => partner logo
[7] => partner status
[8] => partner name
[9] => partner url
[10] => partner logo
[11] => partner status
[12] => partner name
[13] => partner url
[14] => partner logo
[15] => partner status
[16] => partner name
[17] => partner url
[18] => partner logo
[19] => partner status
)
The posted fields are all in one array.Is there a way i can fix my form to get this format of the posted values?
[0] => Array
(
[0] => partner name
[1] => partner url
[2] => partner logo
[3] => partner status
)
[1] => Array
(
[0] => partner name
[1] => partner url
[2] => partner logo
[3] => partner status
)
[2] => Array
(
[0] => partner name
[1] => partner url
[2] => partner logo
[3] => partner status
)
In the above,each form gets its own array.
Use array_chunk,
print_r(array_chunk($a,4));
Note: Though I will suggest you better to give fields name such that you get array in your desired way.
All you have to do is to put every set of inputs inside separate array by changing names to:
name="partner_crud[$i][]"
Every time you add new inputs via jquery $i should be increased, so you should keep track of current count.