Bonjour je suis tout nouveau ici j'aurais besoin d'aide , je suis en train de faire me faire mon projet pour la fin de ma formation . Je souhaite mettre des recettes avec image sur ma base donnée . Mais malheureusement impossible mon echo m'informe il y a un problème de téléchargement de mon fichier ... individuellement ca fonctionne bien envoie d'image et texte mais ensemble impossible ? des pistes s'il vous plait?
Modifié par christplau (30 Oct 2019 - 12:14)
Bonjour, sans code impossible de te répondre
Il faudrait au moins le Javascript qui appel le PHP AJAX
et le début du PHP voir comment tu traites tes POST
Modérateur
Bonjour,

pour envoyer un fichier, c'est un peu plus compliqué.

déjà $('#fileUpload').val() ne renvoie que le nom du fichier, donc le fichier est absent de ta requête.

Il faut récupérer le fichier, l'envoyer et mettre les bonnes en-têtes dans ta requête. Heureusement, il existe un objet FormData qui construit automatiquement un objet prêt à l'envoi en Ajax:

Voici un petit script qui enverra le formulaire en ajax à upload.php exactement comme si il avait été soumis sans javascript

<form id="myForm" name="myForm">
  <div>
    <label for="username">Enter name:</label>
    <input type="text" id="username" name="username">
  </div>
  <div>
    <label for="useracc">Enter account number:</label>
    <input type="text" id="useracc" name="useracc">
  </div>
  <div>
    <label for="userfile">Upload file:</label>
    <input type="file" id="userfile" name="userfile">
  </div>
<input type="submit" value="Submit!">
</form>
<script>
$('#myForm').on('submit', function(e){
  e.preventDefault();
  var formData = new FormData(document.getElementByID('myForm'));
  $.ajax({
    url: 'upload.php,
    type: "POST",
    data: formdata,
    processData: false, // pour que jquery envoie directement formData
    contentType: false, // le content-type est ajouté par FormData, pas par jQuery
    success: function (result) {
         // Faire quelque chose
    }
  });
});
</script>

Modifié par kustolovic (30 Oct 2019 - 13:16)
Meilleure solution
kustolovic a écrit :
Bonjour,

pour envoyer un fichier, c'est un peu plus compliqué.

déjà $('#fileUpload').val() ne renvoie que le nom du fichier, donc le fichier est absent de ta requête.

Il faut récupérer le fichier, l'envoyer et mettre les bonnes en-têtes dans ta requête. Heureusement, il existe un objet FormData qui construit automatiquement un objet prêt à l'envoi en Ajax:

Voici un petit script qui enverra le formulaire en ajax à upload.php exactement comme si il avait été soumis sans javascript

&lt;form id="myForm" name="myForm"&gt;
  &lt;div&gt;
    &lt;label for="username"&gt;Enter name:&lt;/label&gt;
    &lt;input type="text" id="username" name="username"&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;label for="useracc"&gt;Enter account number:&lt;/label&gt;
    &lt;input type="text" id="useracc" name="useracc"&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;label for="userfile"&gt;Upload file:&lt;/label&gt;
    &lt;input type="file" id="userfile" name="userfile"&gt;
  &lt;/div&gt;
&lt;input type="submit" value="Submit!"&gt;
&lt;/form&gt;
&lt;script&gt;
$('#myForm').on('submit', function(e){
  e.preventDefault();
  var formData = new FormData(document.getElementByID('myForm'));
  $.ajax({
    url: 'upload.php,
    type: "POST",
    data: formdata,
    processData: false, // pour que jquery envoie directement formData
    contentType: false, // le content-type est ajouté par FormData, pas par jQuery
    success: function (result) {
         // Faire quelque chose
    }
  });
});
&lt;/script&gt;


merci de ta réponse aussi rapide je vais tester ca je te dit et niveau php ca te semble correct ?