简体   繁体   中英

Send array from field to javascript and then to php

Im stuck with a ajax function im creating. Here is the deal, I have a form that i am sending to php via ajax. In my form i have another form that is uploading images and stores the url in a new created inputfield array. My problem is i dont know how to send these new fields to the php from ajax/jquery

here is some of the code

The uploaded file is working great and i get a new field from every uploaded file into my existing form.

<input name="img[]" type="hidden" value="mynewfile1.jpg">
<input name="img[]" type="hidden" value="mynewfile2.jpg">
etc...

Im declaring the other form objects like this and then sends them to my php file like this

Declaring

var event_title = $('input[name=event_title]');
var event_tags = $('input[name=event_tags]');

//This is my array im also trying to send to php but how?

var event_img = $('input[name=img[]]');

Sending This is done by regular ajax via POST method.

var data = 'event_title=' + event_title.val() etc...

My php

$event_title =  $_POST['event_title'];
$event_url =  $_POST['event_url'];
etc..

Here im getting the stuff from ajax and then using the variables to post and do other stuff.

Im getting the image array like this

if ($_POST['event_img']) {

  $array=$_POST['event_img'];
  foreach ( $array as $value ) {

etc...

My guess is that the problem lies in the sending from ajax, how do i fetch a array field declare it in javascript and send it to php and handle it there?

Thanks for any thoughts and help!!

I would use .serialize() to serialize the entire form and send it on with ajax

var data = $('form').serialize();

then if you send data with your ajax, all the current form data will be available as if you actually submitted the form.

use json:
encode your array as json via the JSON.stringify function, and on the server side I think the json_decode will do the trick.

You can't use AJAX to upload files through file input form fields asynchronously which means that in order for your files to be available to PHP through the $FILES array you need to actually submit the form (either manually or by using the .submit() method).

If you do need to upload the files with your AJAX requests you need to use tools such as Uploadify ( http://www.uploadify.com/ ) etc. or create a proper client-server stream based upload system (which should not be such an easy task).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM