IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Envoyer des données par mail via ajax [AJAX]


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 211
    Par défaut Envoyer des données par mail via ajax
    Bonjour,

    J'essaie d'envoyer mon formulaire via ajax et j'obtiens toujours l'erreur donc data=false. Mes données apparaissent bien dans l'onglet network dans la partie headers et sans erreur php car cela fonctionne bien sur une page à part.

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    $.ajax({
                    url: "content/mail.php",
                    type: "POST",
                    data: $('#frmDemande').serialize(),
                    cache: false
                })
     
                .done(function(data) {
                        if (data == 'true') {
                            console.log("Success: Ok !");
                            $("#demandeOk").removeClass("d-none");
                            $("#demandeOk").addClass("d-block");
                            $("#demandeOk").addClass("alert alert-success");
                            $('#success').append("Votre demande a bien été envoyée !");
                            $('#frmDemande').trigger("reset");
                        } else {
                            console.log("Error: Ok !");
                            $("#demandeOk").removeClass("d-none");
                            $("#demandeOk").addClass("d-block");
                            $("#demandeOk").addClass("alert alert-danger");
                            $('#success').append("Votre demande n'a pas été envoyée !");
                            $('#frmDemande').trigger("reset");
                        }
                    })
                    .fail(function(err) {
                        alert("Erreur ajax :" + err);
                    });
    Je vous remercie de votre aide

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 667
    Par défaut
    regardez dans l'onglet "Réseau" de la console de développement de votre navigateur pour avoir plus de détails sur la réponse de la requête.
    par exemple avec Firefox, faites Ctrl + Maj + E
    https://developer.mozilla.org/fr/doc...ur_r%C3%A9seau

  3. #3
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 511
    Par défaut
    Bonjour,

    Si tu parles de l'erreur à l'intérieur de done et pas fail, je pense qu'il te manque seulement un String.prototype.trim:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (data.trim() == 'true')
    jQuery.trim() est dépréciée, c'est pour ça qu'il faut utiliser celle de String.prototype.

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 211
    Par défaut
    Bonjour,

    Merci pour vos réponses alors j'ai fais comme ci-après, mais cela me renvoie toujours la même erreur:
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    function myTrim(x) {
                    return x.replace(/^\s+|\s+$/gm, '');
                }
                var data = myTrim($('#frmDemande').serialize());
     
                $.ajax({
                    url: "content/mail.php",
                    type: "POST",
                    data: data,
                    cache: false
                })
     
                .done(function(data) {
                        if (data == 'true') {
                            console.log("Success: Ok !");
                            $("#demandeOk").removeClass("d-none");
                            $("#demandeOk").addClass("d-block");
                            $("#demandeOk").addClass("alert alert-success");
                            $('#success').append("Votre demande a bien été envoyée !");
                            $('#frmDemande').trigger("reset");
                        } else {
                            console.log("Error: Ok !");
                            $("#demandeOk").removeClass("d-none");
                            $("#demandeOk").addClass("d-block");
                            $("#demandeOk").addClass("alert alert-danger");
                            $('#success').append("Votre demande n'a pas été envoyée !");
                            $('#frmDemande').trigger("reset");
                        }
                    })
                    .fail(function(err) {
                        alert("Erreur ajax :" + err);
                    });

  5. #5
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 667
    Par défaut
    expliquez nous ce que vous voyez dans l'onglet "Réseau" et ce qu'affiche votre erreur sinon cela va être compliqué de vous aider.

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 211
    Par défaut
    Dans l'onglet réseau je ne vois que du 200 pour les pages php et du 304 pour les scripts js ou images.

  7. #7
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 511
    Par défaut
    Ce n'est pas ça ce que je disais, il faut modifier la condition à l'intérieur de done et pas ailleurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    .done(function(data) {
       if (data.trim() == 'true')
       else...
    }

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 211
    Par défaut
    Comme ça, ça donne apparemment le même résultat:
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    $.ajax({
                    url: "content/mail.php",
                    type: "POST",
                    data: $('#frmDemande').serialize(),
                    cache: false
                })
     
     
                .done(function(data) {
                        if (data.trim() == 'true') {
                            console.log("Success: Ok !");
                            $("#demandeOk").removeClass("d-none");
                            $("#demandeOk").addClass("d-block");
                            $("#demandeOk").addClass("alert alert-success");
                            $('#success').append("Votre demande a bien été envoyée !");
                            $('#frmDemande').trigger("reset");
                        } else {
                            console.log("Error: Ok !");
                            $("#demandeOk").removeClass("d-none");
                            $("#demandeOk").addClass("d-block");
                            $("#demandeOk").addClass("alert alert-danger");
                            $('#success').append("Votre demande n'a pas été envoyée !");
                            $('#frmDemande').trigger("reset");
                        }
                    })
                    .fail(function(err) {
                        alert("Erreur ajax :" + err);
                    });

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoyer des factures par mail en masse via SAP
    Par rickblood dans le forum SAP
    Réponses: 3
    Dernier message: 05/10/2016, 12h41
  2. [MySQL] info pour envoyer des données par mail
    Par boubourse92 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/01/2008, 13h04
  3. [Mail] envoie des données par mail
    Par leclone dans le forum Langage
    Réponses: 2
    Dernier message: 31/01/2007, 10h15
  4. envoyer des données par mail
    Par zorba49 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/12/2005, 11h00
  5. envoyer des données par l'intermédiaire d'un bouton
    Par mathilde50 dans le forum Access
    Réponses: 26
    Dernier message: 28/10/2004, 16h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo