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

JavaScript Discussion :

[AJAX] Input hidden et AJAX


Sujet :

JavaScript

  1. #1
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 748
    Points
    3 748
    Par défaut [AJAX] Input hidden et AJAX
    Bonjour à tous,

    J'utilise Ajax pour envoyer un formulaire.
    J'ai deux champs : email et newsletter_divers.

    Lors de l'envoi si l'input hidden newsletter_objet (facultatif) a été détecté, j'ai un message qui confirme l'enregistrement de emailET newsletter_divers sinon j'ai un message qui confirme l'enregistrement de email

    Mon problème c'est qu'en utilisant Ajax, l'input hidden newsletter_objet n'est pas détecté.
    Classiquement sans Ajax tout fonctionne parfaitement ...


    mon
    Code xhtml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <form method="post" action="newsletter_inscription_result.php" id="envoi2"  name="tirageausort">
    	 <div>
    		<input type="hidden" value="email" name="champs_obligatoires" />
    		<input type="text" id="email22" name="email" class="champ-newsletter" /> 
     
    		<input type="hidden" name="newsletter_objet" value="Tirage au sort" /> 
    		<input type="text"  name="newsletter_divers" id="newsletterdivers" class="champ-newsletter" />
     
    		<input  type="button" onclick="afficheajax()" class="ok-newsletter" value="OK" />
    	</div>
    </form>

    mon
    Code AJAX : 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
    34
    35
     
    function new_xhr(){  
    var xhr_object = null;  
    if(window.XMLHttpRequest) 
       xhr_object = new XMLHttpRequest();  
    else if(window.ActiveXObject){  
       try {  
                    xhr_object = new ActiveXObject("Msxml2.XMLHTTP");  
                } catch (e) {  
                    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");  
                }  
    }  
    else {  
       alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");  
       xhr_object = false;  
    }  
    return xhr_object;  
    }  
    function afficheajax() {  
    var xhr3 = new_xhr();
    xhr3.open("POST", "newsletter_inscription_result.php", true); 
    xhr3.onreadystatechange = function (){  
    if ( xhr3.readyState == 4 ){
    if(xhr3.status  != 200){ 
    document.getElementById("tirage2").innerHTML ="Erreur code " + xhr3.status;  
    } else { 
    document.getElementById("tirage2").innerHTML = xhr3.responseText;  
    }  
    } else { 
    document.getElementById("tirage2").innerHTML = "Chargement en cours";  
    }  
    }  
    xhr3.setRequestHeader('Content-Type','application/x-www-form-urlencoded');  
    xhr3.send("email="+document.getElementById("email22").value+"&newsletter_divers="+document.getElementById("newsletterdivers").value); 
    }

    Seul l'email passe ...

    Une idée ?

    Par avance, Merci

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Salut
    Citation Envoyé par Macmillenium Voir le message
    Mon problème c'est qu'en utilisant Ajax, l'input hidden newsletter_objet n'est pas détecté.
    Je ne vois pas dans ton code où serait cette "détection"
    En l'état, effectivement, il devrait fonctionner ...

    La seule chose que je constate est que newsletter_objet n'a pas dID ...

    A+

  3. #3
    Membre averti
    Avatar de HumanTool
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2006
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2006
    Messages : 276
    Points : 378
    Points
    378
    Par défaut
    salut,
    manque l'id dans tes input hidden parce que tu fais un getElementById

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par HumanTool Voir le message
    manque l'id dans tes input hidden parce que tu fais un getElementById
    Dans cette partie du code ceux accéder par getElementById() ont un id ...

    A+

  5. #5
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 748
    Points
    3 748
    Par défaut
    Salut

    Citation Envoyé par E.Bzz Voir le message
    Je ne vois pas dans ton code où serait cette "détection"
    En l'état, effectivement, il devrait fonctionner ...
    C'est dans mon code php

    Citation Envoyé par E.Bzz Voir le message
    La seule chose que je constate est que newsletter_objet n'a pas dID ...
    Yes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    xhr3.send("email="+document.getElementById("email22").value+"&newsletter_objet="+document.getElementById("newsletterobjet").value);
    A résolu mon problème

    Citation Envoyé par HumanTool
    manque l'id dans tes input hidden parce que tu fais un getElementById
    Oui tout a fait, enfin pour newsletter_objet

    Merci beaucoup !

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Macmillenium Voir le message
    ET newsletter_divers sinon j'ai un message qui confirme l'enregistrement de email
    Donc tu n'envoies plus newsletter_divers.
    Tu confirmes quand même l'enregistrement ?

    Ca colle plus avec ta description initiale

    A+

  7. #7
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 748
    Points
    3 748
    Par défaut
    C'est compliqué je sais
    J'effectue 2 types d'enregistrements et la différence se fait au niveau des input hidden.
    le problème était la "non détection" de ces inputs.
    Et comme j'ai des testes comme :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (isset($_POST['newsletter_objet']) AND $_POST['newsletter_objet']=="Tirage au sort") {
    	echo "Merci de vous &ecirc;tre inscrit au tirage au sort de, qui aura lieu dans une semaine.";
    	exit;
    }
    C'est normal que newsletter_divers ne soit pas envoyé

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Macmillenium Voir le message
    C'est normal que newsletter_divers ne soit pas envoyé
    Ok, si tu le dis

    A+

  9. #9
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 748
    Points
    3 748
    Par défaut
    Merci

    A+

  10. #10
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 748
    Points
    3 748
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Donc tu n'envoies plus newsletter_divers.
    Tu confirmes quand même l'enregistrement ?

    Ca colle plus avec ta description initiale

    A+
    +10000
    En regardant dans ma base je trouve des valeurs nulles

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    xhr3.send("email="+document.getElementById("email22").value+"&newsletter_divers="+document.getElementById("newsletterdivers").value+"&newsletter_objet="+document.getElementById("newsletterobjet").value);
    J'ai dû ajouté newsletter_divers dans ma requête XHR pour que sa marche (normal c'est le plus important après tout )

  11. #11
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Macmillenium Voir le message
    J'ai dû ajouté newsletter_divers dans ma requête XHR pour que sa marche (normal c'est le plus important après tout )


    M'semblait bien aussi ...

    Par contre, si newsletter_objet n'existe pas (ce qui semble pouvoir être le cas) tu auras une erreur "Objet inconnu".
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr3.send("email="+document.getElementById("email22").value+"&newsletter_divers="+document.getElementById("newsletterdivers").value+"&newsletter_objet="+(document.getElementById("newsletterobjet"))?document.getElementById("newsletterobjet").value:"");


    A+

  12. #12
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 748
    Points
    3 748
    Par défaut
    Un grand merci

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

Discussions similaires

  1. [AJAX] Ajax Input et temps de réponse
    Par cz1702 dans le forum AJAX
    Réponses: 3
    Dernier message: 14/08/2012, 11h18
  2. [AJAX] input file avec AJAX
    Par ju0123456789 dans le forum AJAX
    Réponses: 15
    Dernier message: 07/09/2010, 12h32
  3. [AJAX] Soucis Ajax input non trouvé
    Par AutumnTears dans le forum AJAX
    Réponses: 1
    Dernier message: 28/01/2010, 14h11
  4. Réponses: 8
    Dernier message: 03/11/2009, 11h56
  5. [AJAX] input type=file avec php côté serveur
    Par redstain dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/01/2007, 15h43

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