Reputation: 805
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
Reputation: 4906
Try using like
var data = new Array();
$("input[name=typeDetails]").each(function() {
data.push($(this).val());
});
Upvotes: 0
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