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

AJAX Discussion :

[AJAX] Premier script AJAX


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut [AJAX] Premier script AJAX
    Bonjour,

    je débute en AJAX et j'ai un pb. Je n'arrive pas à afficher la fameuse pop up où il y a "Données reçues en POST".Soyez compréhensif c'est mon premier script AJAX.

    Merci de votre aide

    Voilà mon script AJAX
    Code : 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
    36
    37
    38
    function RequeteAJAX(){
     
    var xhr_object = null; 
    var method = "POST";
     
    	if(window.XMLHttpRequest) // Firefox 
    	   xhr_object = new XMLHttpRequest(); 
    	else if(window.ActiveXObject) // Internet Explorer 
    	   xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
    	else { // XMLHttpRequest non supporté par le navigateur 
    	   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    	   return; 
    	} 
     
     	var s1       = document.form.element['IDPseudo'].value; 
    	var s2       = document.form.element['IDMDP'].value; 
    	var data     = null; 
    	alert(s1);
     
    	if(s1 != "" && s2 != "") 
    	   data = "s1="+s1+"&s2="+s2; 
     
    	 xhr_object.open(method, "OuvertureSession.php", true); 
     
    	   xhr_object.onreadystatechange = function() { 
    	      if(xhr_object.readyState == 4) {
    			 var tmp = xhr_object.responseText.split(":"); 
    				if(typeof(tmp[1]) != "undefined") { 
    		        //je met rien ici
    				} 
    	      alert(tmp[0]); 
    		  }
    	 }
    	   xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
     
    	   xhr_object.send(data); 	   
     
    }

  2. #2
    Membre éclairé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 702
    Par défaut
    Re !

    Que te retourne le script OuvertureSession.php ?

  3. #3
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    En fait j'obtiens bien l'affichage de mes echo c'est à dire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Données reçues en POST:monpseudo:motmotdepasse:Retour en page acceuil
    Avec le script suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    header('Content-type: text/html; charset=iso-8859-1'); 
     
     
    if(count($_POST) > 0) { 
    echo "Données reçues en POST:"; 
    foreach($_POST as $v) 
        echo strrev(utf8_decode($v)).":"; 
                     
    echo "Retour en page acceuil";
                    
    } 
    ?>
    En faite le script fonctionne sauf que dans l'exemple donné sur le site cité ci-dessus je devrais avoir ce resultat dans une pop up. Moi je l'obtiens inscrit dans une nouvelle page blanche

  4. #4
    Membre éclairé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 702
    Par défaut
    Essaye avec ça ! C'est plus précis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var s1       = document.getElementById('IDPseudo').value; 
    var s2       = document.getElementById('IDMDP').value;
    En ayant bien sûr effectué un truc de ce style dans ta page HTML

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="text" id="IDPseudo" >
    <input type="text" id="IDMDP" >

  5. #5
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    J'ai ré-essayé mais rien de plus. Je n'ai pas d'erreurs avec Firebug et les echo fonctionne bien. Ma page HTML avec mes champs est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <form name="formul" method="post"  enctype="multipart/form-data" action="OuvertureSession.php">
     
    <div id="IChampsConnexion">						
    	Nom d'utilisateur <br>
    	Mot de passe<br>
    	<input type="button" value="S'enregistrer" onclick="IsConnectMembre('IDPseudo','IDMDP');">
    </div>
     
    <div id="IMembre">
    	<input type="text" id="IDPseudo" name="NPseudo"> <br>
    	<input type="password" id="IDMDP" name="NMDP"><br>
    </div>
     
    </form>
    Ca ne pose pas de problème que mes champs soient dans un formulaire POST?
    Le fonctionnement est le suivant : lors du clique sur le boutton "S'enregistrer" ma fonction JS IsConnectMembre('IDPseudo','IDMDP') s'execute. Dans celle-ci se trouve la soumission du formulaire "formul" qui lance donc mon script OuvertureSession.php.

  6. #6
    Membre éclairé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 702
    Par défaut
    Je ne comprends pas pourquoi tu veux vérifier le type de ton retour dans ta fonction Java.

    Car ton script, chez moi, fonctionne très bien

  7. #7
    Membre éclairé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 702
    Par défaut
    Citation Envoyé par llaffont Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var s1       = document.getElementById('IDPseudo').value; 
    var s2       = document.getElementById('IDMDP').value;
    C'est pour ça que j'avais indiqué getElementById qui pour moi est bien plus pratique que de chercher chaque fois pourquoi mon element n'est pas pris en compte.

    Merci emmanuel.remy je ne trouvais pas ce qui clochait et surtout je ne savais pas que le Forms était un Array.

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    En fait, forms n'est pas à proprement parler un array mais plutôt une collection.
    De ce fait, il dispose d'une propriété length (et donc la possibilité de noter forms[0]), mais pas de toutes les propriétés d'un véritable objet Array.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  9. #9
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut test
    Salut,

    Etonné, j'ai regroupé toutes les infos et j'ai essayé: tout marche correctement.

    Code : 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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
      <body>
        <script type="text/javascript">
          function IsConnectMembre(){
     
          var xhr_object = null; 
          var method = "POST";
     
          	if(window.XMLHttpRequest) // Firefox 
          	   xhr_object = new XMLHttpRequest(); 
          	else if(window.ActiveXObject) // Internet Explorer 
          	   xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
          	else { // XMLHttpRequest non supporté par le navigateur 
          	   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
          	   return; 
          	} 
     
           	var s1       = document.forms[0].elements['NPseudo'].value; 
          	var s2       = document.forms[0].elements['NMDP'].value;  
          	var data     = null; 
          	alert(s1);
     
          	if(s1 != "" && s2 != "") 
          	   data = "s1="+s1+"&s2="+s2; 
     
          	 xhr_object.open(method, "ouvertureSession.php", true); 
     
          	   xhr_object.onreadystatechange = function() { 
     
                  if(xhr_object.readyState == 4) {
          			 var tmp = xhr_object.responseText.split(":"); 
          				if(typeof(tmp[1]) != "undefined") { 
          		        //je met rien ici
          				} 
          	      alert("resultat:"+ tmp[0]); 
          		  }
          	 }
          	   xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
     
          	   xhr_object.send(data); 	   
     
          }    
        </script>
     
        <form >
     
        <div id="IChampsConnexion">						
        	Nom d'utilisateur <br>
        	Mot de passe<br>
        	<input type="button" value="S'enregistrer" onclick="IsConnectMembre('IDPseudo','IDMDP');">
        </div>
     
        <div id="IMembre">
        	<input type="text" id="IDPseudo" name="NPseudo"> <br>
        	<input type="password" id="IDMDP" name="NMDP"><br>
        </div>
     
        </form>
      </body>
    et pour ouvertureSession.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    header('Content-type: text/html; charset=iso-8859-1'); 
     
     
    if(count($_POST) > 0) { 
    echo "Données reçues en POST:"; 
    foreach($_POST as $v) 
        echo strrev(utf8_decode($v)).":"; 
                     
    echo "Retour en page acceuil";
                    
    } 
    ?>
    Aucun problème, les données s'affichent bien au niveau du alert("resultat:"+ tmp[0]); quand est saisi un user et un password.

    ERE

  10. #10
    Membre éclairé Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Par défaut
    a oui en effet emmanuel.remy !! Je viens de reprendre ton script que tu as mis ci-dessus et ça fonctionne chez moi aussi. Je vais regarder ce qui cloche dans mon code.
    Merci

  11. #11
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Citation Envoyé par Général03 Voir le message
    ça fonctionne chez moi aussi. Je vais regarder ce qui cloche dans mon code.
    Merci

    J'ai remplacé tes 2 lignes de codes qui affectent s1 et s2 parce que les lignes originales sont fausses.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
            //Erreur de code
           	//var s1       = document.form.element['NPseudo'].value; 
          	//var s2       = document.form.element['NMDP'].value; 
     
     
           	var s1       = document.forms[0].elements['NPseudo'].value; 
          	var s2       = document.forms[0].elements['NMDP'].value;
    ERE

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

Discussions similaires

  1. [AJAX] Premier script, premier bug.. j'ai besoin de vous :)
    Par chromatia dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 23/06/2008, 14h40
  2. [AJAX] Rendre full ajax un script de validation de formulaire
    Par Darkenshin dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/01/2008, 23h58
  3. [AJAX] Conflit entre script Ajax et scripts Javascript
    Par Mingain dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/10/2007, 13h18
  4. [AJAX] Adapter script AJAX
    Par Jiraiya42 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/07/2007, 07h08
  5. [AJAX] 2 scripts AJAX (contenu dynamique)
    Par Mith55 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/11/2006, 22h14

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