Bonjour,
dans un formulaire de ce type:
je peux récupérer des fichiers dans le champ input type file.
Ensuite au niveau du javascript je créé un objet formData à partir des données du formulaire
et je cherche à afficher les paires clés-valeurs
dans la boucle for, les valeur du champ multiple ne s'affichent pas ( contenu de files-by-form[] )
pour afficher les valeurs correspondantes aux fichiers choisis, je dois invoquer cette commande:
La seule solution que j'ai trouvé est ceci:
par contre si j'envoie cet objet formData via un objet ajax, je récupère bien toutes les valeurs du formulaire avec les tableaux $_FILES et $_POST u niveau du PHP
Comment pourrait-on lister toutes les valeurs du formulaire dans une seule boucle ?
Modifié par lionel_css3 (30 Jan 2018 - 20:08)
dans un formulaire de ce type:
<form id="main-form" action="drag-ajax.php" method="post" enctype="multipart/form-data">
<div class="form-group">
<label for="marque">Marque</label>
<input type="text" class="form-control" id="marque" name="marque" placeholder="entrer la marque">
</div>
<div class="form-group">
<label for="modele">Modèle</label>
<input type="text" class="form-control" id="modele" name="modele" placeholder="entrer le modèle">
</div>
<div class="form-group">
<label for="files-by-form">télécharger des fichiers</label>
<input type="file" multiple name="files-by-form[]" class="form-control-file" id="files-by-form">
</div>
<button id="submit-form" type="submit" class="btn btn-primary">Valider</button>
</form>
je peux récupérer des fichiers dans le champ input type file.
Ensuite au niveau du javascript je créé un objet formData à partir des données du formulaire
et je cherche à afficher les paires clés-valeurs
document.getElementById('submit-form').addEventListener("click", formValidated);
function formValidated(e) {
e.preventDefault();
var form = document.getElementById('main-form');
var myData = new FormData(form);
// Display the key/value pairs
for(var entryForm of myData.entries()) {
console.log(entryForm[0]+ ', '+ entryForm[1]);
}
dans la boucle for, les valeur du champ multiple ne s'affichent pas ( contenu de files-by-form[] )
pour afficher les valeurs correspondantes aux fichiers choisis, je dois invoquer cette commande:
console.log(myData.getAll('files-by-form[]'));
La seule solution que j'ai trouvé est ceci:
// Display the key/value pairs
for(var entryForm of myData.entries()) {
if (entryForm[0] != 'files-by-form[]') {
console.log(entryForm[0]+ ', '+ entryForm[1]);
}
}
console.log(myData.getAll('files-by-form[]'));
par contre si j'envoie cet objet formData via un objet ajax, je récupère bien toutes les valeurs du formulaire avec les tableaux $_FILES et $_POST u niveau du PHP
Comment pourrait-on lister toutes les valeurs du formulaire dans une seule boucle ?
Modifié par lionel_css3 (30 Jan 2018 - 20:08)