Salut à tous j'ai un p'tit soucis avec la récuperation des données coter php de mes champs input.
handleFormSubmit = async (e) => {
e.preventDefault();
const button = e.submitter;
this.spinner.show(button, this.messageBox, '<div class="spinner"></div>');
const formData = new FormData(this.form);
const jsonData = Object.fromEntries(formData.entries());
try {
const response = await fetch(`${ResolvePath(this.serverPath)}`, {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify(jsonData)
});}
Ce que je veux
Je souhaite pouvoir également récuperer les données du champ input de type file pour pouvoir les envoyer en base de donnée.
Ce que j'obtiens
Malheureusement lors de la soumition du formulaire tous les champs sont récuperer sauf le champ de type file qui renvoie une cle avec une valeur qui correspond à un tableau vide. apres reflexion je me suis rendu compte que c'était du au faite que la page n'était pas rechargé lors de l"envoi du formulaire a cause du preventDefault j'aimerai donc savoir s'il y'avait un moyen de pouvoir recuperer ce type de champ sans rafraichir la page, comment, et sans etre améné à utiliser jquery.
Hello :)
Alors pour commencer, dans ton tag form
tu as bien encodé en multipart? enctype="multipart/form-data"
Pour pouvoir traiter les fichier
Ensuite tu dois ajouter manuellement le fichier dans ton formData:
let formData = new FormData(this.form);
let file = document.getElementById('l-id-de-ton-input-file').files[0]
formData.append('le-name-de-ton-input-file', file, file.name);
// Ensuite tu fais ta requête normal