Bonjour,
Je cherche à uploader une image via un form en html5 validé en ajax avec jquery.
Le code du form :
Le code jquery :
Le code php :
Tout ca marche très bien sauf que ca n'envoi pas le fichier lui même.
Je ne valide jamais par ajax, et normalement je récupère le fichier dans la variable "$_FILES" en php. Bon, mais là, pas possible.
Un petit coup de main ?
Modifié par fabriceb (12 Aug 2016 - 14:22)
Je cherche à uploader une image via un form en html5 validé en ajax avec jquery.
Le code du form :
<form id="contact_form" method="post" action="php/mail.php" ENCTYPE="multipart/form-data">
//...
<label id="exampleFileUploadLabel" for="exampleFileUpload" class="ajouter button">Ajouter une<br />pièce jointe (1Mo max.)</label>
<input type="file" id="exampleFileUpload" name="exampleFileUpload" class="show-for-sr" size="1048576"><!--max 1048576 octets = 1 Mo-->
<input type="submit" class="envoyer button" value="Envoyer">
</form>
Le code jquery :
$( "#contact_form" ).submit(function(event) {
event.preventDefault();
var formData = new FormData();// get the form data
formData = {
'idDemo_form' : $('input[name=idDemo_form]').val(),
'societe_form' : $('input[name=societe_form]').val(),
'office_form' : $('input[name=office_form]').val(),
'nom_form' : $('input[name=nom_form]').val(),
'prenom_form' : $('input[name=prenom_form]').val(),
'fonction_form' : $('input[name=fonction_form]').val(),
'email_form' : $('input[name=email_form]').val(),
'image_nom' : ($('input[type=file]')[0].files[0]).name,
'image_size' : ($('input[type=file]')[0].files[0]).size,
'image_type' : ($('input[type=file]')[0].files[0]).type
};
$.ajax({
type : 'POST', // define the type of HTTP verb we want to use (POST for our form)
url : 'php/mail.php', // the url where we want to POST
data : formData , // our data object
dataType : 'json', // what type of data do we expect back from the server
encode : true
})
// using the done promise callback
.done(function(data) {
//etc................................................
Le code php :
$errors = array(); // array to hold validation errors
$data = array(); // array to pass back data
//par ex pour renvoyer le nom du fichier uploadé au script js qui l'affiche dans la console
$data['errors'] =$_POST['image_nom'];
$data['success'] = false;
$data['message'] =$_POST['image_nom'];
exit;
Tout ca marche très bien sauf que ca n'envoi pas le fichier lui même.
Je ne valide jamais par ajax, et normalement je récupère le fichier dans la variable "$_FILES" en php. Bon, mais là, pas possible.
Un petit coup de main ?
Modifié par fabriceb (12 Aug 2016 - 14:22)