Mansa
Mansa

Reputation: 2325

Sending input array with jQuery and Ajax

I am trying to send a form field array through my form but am unsuccessfull :-/

I have a hidden field, generated from jQuery, looking like this:

$(".imghidden").html('<input type="hidden" name="pimage[]"  value="'+data.imgname+'">');

This is generated for each file uploaded to this post. When I then submit the form I do not get anything through the "pimage" form submission. All other fields return a value?!? Below is the jQuery Ajax I am trying to use:

var $form = $( this ),
    category = $form.find( "select[name='category']" ).val(),
    newcategory = $form.find( "input[name='newcategory']" ).val(),
    title = $form.find( "input[name='title']" ).val(),
    subtitle = $form.find( "input[name='subtitle']" ).val(),
    content = $form.find( "textarea[name='content']" ).val(),
    pimage = $form.find( "input[name='pimage']" ).val()

// Send the data using post
var posting = $.post( "data/mod/projects.php", { createnew: true, cat: category, newcat: newcategory, ti: title, sti: subtitle, con: content, pimg: pimage  });

What am I doing wrong. Any help is appreciated.

Thanks in advance :-)

Upvotes: 0

Views: 6416

Answers (2)

lshettyl
lshettyl

Reputation: 8171

You are trying to find a selector that doesn't exist. Try

$form.find( "input[name^='pimage']" ).val()

Upvotes: 0

Edd Turtle
Edd Turtle

Reputation: 1531

Your jQuery selector is looking for an input with name pimage... which doesn't exist. I haven't tested it, but it looks like your jQuery selector should be looking for pimage[] instead.

e.g.

pimage = $form.find( "input[name='pimage[]']" ).val()

Upvotes: 5

Related Questions