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] Récuperer les informations d'une page executé


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut [AJAX] Récuperer les informations d'une page executé
    Bonjour à tous,


    Je voudrait savoir comment récupérer une information d'une page executé par 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
    39
    40
    41
     
    function check_produit(){
                var xhr = getXhr();
     
                // On défini ce qu'on va faire quand on aura la réponse
                xhr.onreadystatechange = function(){
                   // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
                   if(xhr.readyState == 4 && xhr.status == 200){
                      leselect = xhr.responseText;
                      // On se sert de innerHTML pour rajouter les options a la liste
                      document.getElementById('info').innerHTML = leselect;
                      }
                }
     
                // Ici on va voir comment faire du post
                xhr.open("POST","ajax/ajax_check_produit.php",true);
                // ne pas oublier ça pour le post
                xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
                // ne pas oublier de poster les arguments
                // ici, l'id de l'auteur
                idauteur = document.getElementById('code_pdt').value;
                //alert(idauteur);
                xhr.send("idauteur="+idauteur);
     
             var url = '/ajax/ajax_check_produit.php';
    ?????
                    {
             case 'ok':
                //traitement si c'est okay
                alert('essai');
             break;
             case 'ko':
             alert('essai');
             //traitement si ce n'est pas bon
             break;
       }
      }
    });
     
     
             }
    Explication:

    - Je suis sur une page web (php) avec un champ input.
    - Dans ce champ je rentre un numéro.
    - a partir de la, en ajax j'interroge une page php pour savoir si oui ou non .
    le produit existe.

    - A partir de la, je voudrait pourvoir utiliser la réponse de la page php

    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
     
    	if(isset($_POST["idauteur"])){
    		$test= $_POST["idauteur"];
    	$sql3 = "select ref_pdt, code_pdt, nom_pdt FROM produit WHERE code_pdt = '$test' ORDER BY code_pdt";
    	$query3 = mysql_query($sql3) or die('erreur');
    	$nb3= mysql_num_rows($query3);
    	if ($nb3 == null){
            $res['txt'] = "<br/> Pas de  produit.";
            $res['result'] = "ok";
        } else {
            $res['txt'] = "<br/> un ou plusieurs produit enregistrer.";
            $res['result'] = "ko";
        } 
     
    	}
    ok ou ko pour réaliser une action en javascript.

    Comment je peut faire? Est-il possible?

    Merci d'avance pour votre aide

    guigui69

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Salut,
    Si la requête ne retourne aucune enregistrement
    Sinon
    Dans javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(xhr.responseText=='ko')
    {alert ('Nom trouvé')}
    else
    {alert('Trouvé')}

  3. #3
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Il manquerait un côté php : ces données se retrouveront dans ton responseText côté client au retour de l'ajax

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut
    Merci pour vos réponse, mais j'ai un probleme.

    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
     
    			function check_produit(){
    				var xhr = getXhr();
     
    				// On défini ce qu'on va faire quand on aura la réponse
    				xhr.onreadystatechange = function(){
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    						leselect = xhr.responseText;
    						// On se sert de innerHTML pour rajouter les options a la liste
    						document.getElementById('info').innerHTML = leselect;
    						}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","ajax/ajax_check_produit.php",true);
    				// ne pas oublier ça pour le post
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				// ne pas oublier de poster les arguments
    				// ici, l'id de l'auteur
    				idauteur = document.getElementById('code_pdt').value;
    				//alert(idauteur);
    				xhr.send("idauteur="+idauteur);
    				//alert("esssaaaiii"+xhr.responseText );
    				if(xhr.responseText=='ko')
    				{alert ('Nom trouvé')}
    				else
    				{alert('Trouvé')}
     
    			}
    page php demande par 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
     
    <?php
            
            if(isset($_POST["idauteur"])){
                    mysql_connect("localhost","root","BH65fKhQ");
                    mysql_select_db("pdr");
                    $test= $_POST["idauteur"];
            $sql3 = "select ref_pdt, code_pdt, nom_pdt FROM produit WHERE code_pdt = '$test' ORDER BY code_pdt";
            $query3 = mysql_query($sql3) or die('erreur');
            $nb3= mysql_num_rows($query3);
            if ($nb3 == null)
            {
        echo 'ko';
        } else {
        echo 'ok';
        } 
            }
            //print_r($_POST)
    ?>
    Lorsque je tape un code, existant ou non dans ma page web principale j'ai bien le retour ok ou ok s'affiche mais dans la partie ajax, il passe toujours par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {alert('Trouvé')}
    Quel est le problème? il interprète mal la réponse? Comment corriger cette erreur?

    Merci

    guigui69

  5. #5
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Un
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(xhr.responseText);
    serait quand même plus loquace que :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(xhr.responseText=='ko')
    {alert ('Nom trouvé')}
    else
    {alert('Trouvé')}
    ^^

  6. #6
    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
    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

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    829
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 829
    Par défaut
    Merci pour vos réponses

    dans le code que j'ai posté, j'ai commenté ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //alert("esssaaaiii"+xhr.responseText );

    Si je le décommante cette ligne en alert il me retourne essai sans rien apres mais apres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(xhr.responseText=='ko')
    {alert ('Nom trouvé')}
    else
    {alert('Trouvé')}
    Réagisse, c'est bizarre.

    Bonivo, je doit remplacer dans mon code php
    if ($nb3 == null) par if (!$nb3) c'est ca???

    Merci pour votre aide

    guigui69

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/07/2009, 18h56
  2. Obtenir les informations d'une page chargée en AJAX d'un site exterieur
    Par roro59650 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/07/2009, 17h43
  3. [AJAX] Convertir les accents d'une page en ASCII
    Par Meri Nose dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/11/2008, 13h04
  4. Réponses: 7
    Dernier message: 14/09/2005, 10h50

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