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] Ajax: xhr_object.responseText undefined


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 201
    Points : 97
    Points
    97
    Par défaut [AJAX] Ajax: xhr_object.responseText undefined
    Bonjour,
    j'ai un petit problème, je veux lier deux listes déroulantes en ajax, mais la page contenant la requete de la seconde liste ne semble pas bien fonctionner.
    xhr_object.responseText n'est pas renseigné.
    Lorsque j'exécute le code j'ai le message d'erreur "les données nécessaire pour terminer cette opération ne sont pas encore disponible" + erreur de syntaxe...
    Il semble donc que je n'ai aucun retour de requete
    code js
    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
     
     function afficheListe(f)
    {
    var l1    = f.elements["LDSect"];
    var l2    = f.elements["LDinscri"];
    var index = l1.selectedIndex;
    if(index < 1)
             l2.options.length = 0;
    else{
       var xhr_object = null;
       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;}
                  xhr_object.open("POST","ajaxLDinscri.php", true);
                  xhr_object.onreadystatechange = function() {
                  if(xhr_object.readyState == 4)
                  alert(xhr_object.responseTexte);
                  eval(xhr_object.responseText);
                  }
       xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
       var data = "secteurid="+escape(l1.options[index].value)+"&form="+f.name+"&select=LDinscri";
     
       xhr_object.send(data);
    } }
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    <html>
     
    <head>
    <script language="Javascript">
    </script>
     
    </head>
    <body>
    <script language="javascript" type="text/javascript" src="./js/fonctions.js"></script>
     
    <?php
     header('Content-type: text/html; charset=iso-8859-1');
    include("./fonction_f.php");
     $connection_pg=ConnectionPg ();
     
     $query  = "SELECT lettreid FROM lettre WHERE secteurid = ".$_POST["secteurid"].";";
     //$query  = "SELECT `lettreid` FROM `lettre` WHERE `secteurid` = 1";
     $query .= " ORDER BY `lettreid`";
     $result=pg_query($connection_pg,$query);
     
     echo 'var o = null;';
     echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];';
     echo 's.options.length = 0;';
     while($r = pg_fetch_array($result))
         echo 's.options[s.options.length] = new Option("'.$r["lettreid"].'");';
     
     pg_close($connection_pg);
     
     ?>
     
    </body>
    </html>
    Si quelqu'un pouvait m'aider ça serai sympa

  2. #2
    Membre averti Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Points : 323
    Points
    323
    Par défaut
    Citation Envoyé par Mat_DZ
    Bonjour,
    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
     function afficheListe(f)
    {
    var l1    = f.elements["LDSect"];
    var l2    = f.elements["LDinscri"];
    var index = l1.selectedIndex;
    if(index < 1)
             l2.options.length = 0;
    else{
       var xhr_object = null;
       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;}
                  xhr_object.open("POST","ajaxLDinscri.php", true);
                  xhr_object.onreadystatechange = function() {
                  if(xhr_object.readyState == 4)
                  alert(xhr_object.responseTexte);
                  eval(xhr_object.responseText);
                  }
       xhr_object.setRequestHeader("Content-type", "application/x-www-form-
    
    ...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 201
    Points : 97
    Points
    97
    Par défaut
    cet alert étai justement là pour voir si j'avai quelquechose dans xhr_object.responseText.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 201
    Points : 97
    Points
    97
    Par défaut
    Mais la console js me signale une erreur de syntaxe

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 201
    Points : 97
    Points
    97
    Par défaut
    l'erreur est au niveau de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    eval(xhr_object.responseText);

  6. #6
    Membre averti Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Points : 323
    Points
    323
    Par défaut
    Je voulais juste te faire remarquer que tu avais mis un e à responseText

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 201
    Points : 97
    Points
    97
    Par défaut
    ha oui,effectivement c'est sur que ça marchera moins bien

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 201
    Points : 97
    Points
    97
    Par défaut
    l'erreur provient bien de ma requete au niveau du order by, mais je ne voi pas pourquoi

  9. #9
    Membre averti Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Points : 323
    Points
    323
    Par défaut
    Essaie ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     $query  = "SELECT lettreid FROM lettre WHERE secteurid = ".$_POST["secteurid"] . " ";
     $query .= " ORDER BY `lettreid`;";
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     $query  = "SELECT lettreid FROM lettre WHERE secteurid = ".$_POST["secteurid"].";";
     //$query  = "SELECT `lettreid` FROM `lettre` WHERE `secteurid` = 1";
     $query .= " ORDER BY `lettreid`";

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 201
    Points : 97
    Points
    97
    Par défaut
    j'ai règlé le problème de requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $query  = "SELECT lettreid FROM lettre WHERE secteurid = ".$_POST["secteurid"]." ORDER BY lettreid;";
    la requete renvoi son résultat mais il y a toujour une erreur de syntaxe au niveau de l' eval et "données pas encore disponibles"

  11. #11
    Membre averti Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Points : 323
    Points
    323
    Par défaut
    Mais ça sert à quoi au juste eval ?
    J'utilise jamais ça moi et j'ai aucun souci...

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 201
    Points : 97
    Points
    97
    Par défaut
    eval sert à récupérer et exécuter du code JS et ainsi normalement me créer ma seconde liste.

  13. #13
    Membre averti Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Points : 323
    Points
    323
    Par défaut
    OK.
    Et c'est normal que tu ne fasses jamais de send de ton xmlHTTPRequest ?

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 201
    Points : 97
    Points
    97
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if(window.XMLHttpRequest) // Firefox
             xhr_object = new XMLHttpRequest();
       .
       .
       .
       .
       .
       xhr_object.send(data);
    Normalement c bon

  15. #15
    Membre averti Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Points : 323
    Points
    323
    Par défaut
    Excuse j'avais pas vu...

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 201
    Points : 97
    Points
    97
    Par défaut
    J'ai tout remanié le code d'une façon différente et magie...ça marche. Merçi Linar009 pour ton aide

    Voiçi le code
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script type="text/javascript">
    /**
    * Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest
    */
    function sendData(param, page)
    {
    if(document.all)
    {
    //Internet Explorer
    var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
    }//fin if
    else
    {
    //Mozilla
    var XhrObj = new XMLHttpRequest();
    }//fin else

    //définition de l'endroit d'affichage:
    var content = document.getElementById("contenu");

    XhrObj.open("POST", page);

    //Ok pour la page cible
    XhrObj.onreadystatechange = function()
    {
    if (XhrObj.readyState == 4 && XhrObj.status == 200)
    content.innerHTML = XhrObj.responseText ;
    }

    XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    XhrObj.send(param);
    }//fin fonction SendData

    </script>
    </head>
    <body>

    <?php
    $i=0; // variable de test
    $j=0; // variable pour garder la valeur du premier enregistrement
    include("./fonction_f.php");
    $connection_pg=ConnectionPg ();

    // Séléction de tous les enregistrements de la table Catégorie
    //$rq="Select * from script_categorie order by designation;";
    $rq = "SELECT secteurid,secteurlib from t_secteur;";
    $result= pg_query ($rq) or die ("Select impossible");
    echo "<form method='POST' action='valid.php'>";?> <select size="1" name="cat" OnChange="sendData('id='+this.value,'ajax.php')" onKeyUp="sendData('id='+this.value,'ajax.php')">

    <?php
    while ($dt=pg_fetch_row($result))
    {
    // Remplir la liste déroulante des catégorie
    echo "<option value=".($dt[0]).">".($dt[1])."</option>";
    if ($i==0) { $j=$dt[0]; $i=1; } // garder la valeur du premier enregistrement
    }

    ?>
    </select><br><br>



    <div id="contenu">
    <?php
    // affichage des sous-catégorie appartenant à la première catégorie.
    echo "<select size='1' name='souscat'>";
    $rq="SELECT lettreid, nom FROM lettre WHERE secteurid = ".$j." ORDER BY lettreid;";
    $result= pg_query ($rq) or die ("Select impossible");
    // $i = initialise le variable i
    $i=0;
    while ($dt=pg_fetch_row($result))
    {
    echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[1])."</option><br>";
    }
    echo "</select>";
    ?>
    </div>
    </form>
    </body>
    </html>
    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
     
     
    <?php
    header('Content-type: text') ; // on déclare ce qui va être afficher
     
    // test des POST emis
    if(isset($_POST['id']) && !empty($_POST['id']) ){
     include("./fonction_f.php");
     $connection_pg=ConnectionPg ();
        $rq  = "SELECT lettreid FROM lettre WHERE secteurid = ".$_POST["id"]." ORDER BY lettreid;";
        //$rq="Select * from script_sous_categorie where idcat=".$_POST['id']." order by designation;";
        $result= pg_query ($rq) or die ("Select impossible");
         // $i = initialise le variable i
        $i=0;
            if (pg_num_rows($result)>0)
            {
              echo "<select size='1' name='souscat'>";
            }
            else
            {
              echo utf8_encode("Pas de sous catégories disponible");       
            }
        while ($dt=pg_fetch_row($result))
        {   
             echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[2])."</option><br>";
        }    
            echo "</select>";
    }
     
    ?>

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

Discussions similaires

  1. [AJAX] Ajax passe sous IE, "undefined" sous Firefox
    Par franklin626 dans le forum AJAX
    Réponses: 22
    Dernier message: 04/08/2010, 11h08
  2. [AJAX] Utilisation de responseText
    Par manaboko dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/05/2006, 08h33
  3. [AJAX] Ajax en retour undefined
    Par Tempotpo dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 05/04/2006, 10h47
  4. [AJAX] Ajax et javascript contenu
    Par zekey dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/09/2005, 20h16
  5. [AJAX] AJAX et javascript
    Par spud5351 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/09/2005, 10h16

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