Maison >développement back-end >tutoriel php >Comment résoudre les problèmes de téléchargement d'images AJAX : soumission de formulaire et déclenchement du téléchargement ?

Comment résoudre les problèmes de téléchargement d'images AJAX : soumission de formulaire et déclenchement du téléchargement ?

DDD
DDDoriginal
2024-12-18 05:17:14964parcourir

How to Fix AJAX Image Upload Issues:  Form Submission and Triggering Upload?

Téléchargement d'images compatible Ajax

Lorsque vous essayez de convertir un formulaire en AJAX pour le téléchargement d'images, vous pouvez rencontrer des problèmes avec le formulaire qui ne répond pas à la soumission ou à la sélection du fichier ne déclenchant pas la fonction de téléchargement. Voici une explication détaillée de la solution :

Résolution du problème de soumission de formulaire

Le code JavaScript d'origine manquait de gestion appropriée des erreurs et des succès dans l'appel AJAX. Pour résoudre ce problème, ajoutez ce qui suit :

success:function(data){
    console.log("success");
    console.log(data);
},
error: function(data){
    console.log("error");
    console.log(data);
}

Ces fonctions permettent d'inspecter la réponse du serveur et de gérer les erreurs potentielles ou les téléchargements réussis.

Déclenchement du téléchargement sur Sélection de fichiers

Pour déclencher la fonction de téléchargement immédiatement après la sélection du fichier, ajoutez l'écouteur d'événement suivant à votre entrée de fichier element :

$("#ImageBrowse").on("change", function() {
    $("#imageUploadForm").submit();
});

Ce code écoute toute modification apportée à la valeur de l'élément d'entrée du fichier et soumet automatiquement le formulaire, lançant ainsi le téléchargement AJAX.

Extrait de code complet

En combinant les solutions ci-dessus, votre code JavaScript final devrait ressembler à ceci :

$(document).ready(function (e) {
    $('#imageUploadForm').on('submit',(function(e) {
        e.preventDefault();
        var formData = new FormData(this);

        $.ajax({
            type:'POST',
            url: $(this).attr('action'),
            data:formData,
            cache:false,
            contentType: false,
            processData: false,
            success:function(data){
                console.log("success");
                console.log(data);
            },
            error: function(data){
                console.log("error");
                console.log(data);
            }
        });
    }));

    $("#ImageBrowse").on("change", function() {
        $("#imageUploadForm").submit();
    });
});

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn