origin origin - 5 months ago 68
Ajax Question

JQUERY: how to serialize input fields with same name

I have the following form that has lots of similar type of input fields with same name (eg. 10 fields for 'name', 10 fields for 'address'). How many times these input fields will repeated, can not be said in prior and therefore they cannot be given static different names (eg. 'name1', 'name2', 'address1', 'address2').

Problem: while I am posting data using ajax post (serialized), its only posting the first value of fields with same name (received with php).

Required:


  1. How can I get all the input data posted properly?

  2. Whats the best way to name such input fields that contain similar data for the purpose of catching those data with php (form is generated in php)?



Sample code:

<form name="content">
<table>
<tr>
<td>
<input name="full_name" type="text" />
</td>
<td>
<input name="address" type="text" />
</td>
</tr>
<tr>
<td>
<input name="full_name" type="text" />
</td>
<td>
<input name="address" type="text" />
</td>
</tr>
</table>
</form>

Jai Jai
Answer

I think in your case you can use $.serializeArray():

var data = $('form[name="content"]').serializeArray();

this will produce something like this:

data = [
     {
       name : "full_name",
       value : "thefieldvalue"
     },
     {
       name : "address",
       value : "theaddressvalue"
     },
     .....
];

See this:

data:$('form[name="content"]').serializeArray()+'&request=insert_invoice' 

not a correct way to send data instead you can try with this below:

data:{
    frmvalues : $('form[name="content"]').serializeArray(), 
    request:insert_invoice
}