Vous soumettez un formulaire via Ajax à l'aide de la fonction de sérialisation jQuery. Cependant, vous rencontrez des problèmes lorsque le formulaire inclut un champ. Les données du formulaire sérialisé n'incluent pas le fichier et l'impression de $_FILES donne un résultat vide.
Pour résoudre ce problème, vous pouvez utiliser l'objet FormData. Il est compatible avec tout type de formulaire, y compris ceux avec des entrées de fichier. Voici comment l'implémenter :
$(document).on("submit", "form", function(event) { event.preventDefault(); $.ajax({ url: $(this).attr("action"), type: $(this).attr("method"), dataType: "JSON", data: new FormData(this), processData: false, contentType: false, success: function (data, status) { }, error: function (xhr, desc, err) { } }); });
En utilisant l'objet FormData, vous pouvez transmettre le fichier avec d'autres données de formulaire dans la requête Ajax. Les options processData et contentType sont définies sur false pour empêcher jQuery de gérer les données et le type de contenu et permettre au navigateur de gérer correctement la soumission du formulaire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!