Matt Pierce
Matt Pierce

Reputation: 805

AJAX Post Multiple Arrays

I have 2 input fields like so

<input type="text" name="typeDetails[games]"/>
<input type="text" name="typeDetails[art]"/>

I want to submit via AJAX, but I'm unsure how to exactly send this data. I know in my controller that I can validate the typeDetails array like typeDetails.games or typeDetails.art, but I'm unsure how to send it.

Here's what my JS looks like currently.

var data = { 'typeDetails[]' : []};

$("input[name='typeDetails[games]']").each(function() {
    data['typeDetails[games]'].push($(this).val());
}); 

$("input[name='typeDetails[art]']").each(function() {
    data['typeDetails[art]'].push($(this).val());
});

The error I'm getting is "Cannot read property 'push' of undefined".

Thanks!

Upvotes: 0

Views: 38

Answers (2)

cracker
cracker

Reputation: 4906

Try using like

var data = new Array();
$("input[name=typeDetails]").each(function() {
    data.push($(this).val());
});

Upvotes: 0

Vinoth K
Vinoth K

Reputation: 106

'typeDetails[games]' and 'typeDetails[art]' are not the keys of data.

Declare data like this

var data = { 'typeDetails[games]' : [],  'typeDetails[art]' : []};

Upvotes: 1

Related Questions