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] responseText est vide


Sujet :

JavaScript

  1. #1
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut [AJAX] responseText est vide
    Salut,
    j'ai un petit souci avec une requete ajax.
    D'après mes tests j'ai l'impression que "responseText" reste vide.
    Mon alert reste vide!
    Je suis sûr que ma page php est appelée car à chaque appel j'ai une insertion dans la bdd.

    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
    <script type="text/javascript">
    function getHTTPObject() {
      var xmlhttp;
      if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
        try {
          xmlhttp = new XMLHttpRequest();
          } catch (e) {
          xmlhttp = false;
          }
        }
        return xmlhttp;
      }
    var http = getHTTPObject();
     
    function moreinfo(type,id) {
      var url = "moreinfo.php"; 
      http.open("POST", url, true);
      http.onreadystatechange = handleHttpResponse;
      http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
      http.send("man_id=" + id);
    }
     
    function handleHttpResponse() {
      if (http.readyState == 4) { 
      	alert(http.responseText) // ICI LA BOITE DE DIALOGUE RESTE VIDE !!!
        }
    }
    </script>
    page php moreinfo.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <? echo 'test'; 
    require("../connections/connect.php");
    $db_connect = connect();
    mysql_query ("INSERT INTO test SET text='eva'");
    ?>
    merci d'avance pour le coup de pouce

    Julien

  2. #2
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http.send(escape(man_id=" + id));
    Fremy

  3. #3
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Salut

    C'est quoi cet echo 'test';

    Tu veux afficher ta table ? ou bien afficher ta variable $text.

  4. #4
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    salut
    sympa la nouvelle présentation !
    mais revenons à nos moutons:
    j'ai essayé :
    http.send(escape(man_id=" + id));mais sans succés.

    echo 'test';
    c'est ce que je voudrais voir afficher dans mon alert javascript, c'est à dire "test" avec le code suivant :
    alert(http.responseText)
    qui reste vide.

    le code :
    mysql_query ("INSERT INTO test SET text='eva'");
    me sert juste pour m'assurer que la page est bien ouverte. A chaque fois que j'exécute le code, j'ai une entrée de plus dans ma base.

    Après quand j'aurai réussi à faire afficher test dans mon alert, alors là je ferai une vraie requête et je l'afficherai dans un innerHtml et non plus seulement dans une alert.

    Merci d'avance pour vos conseils,

    Julien

  5. #5
    Rédacteur
    Avatar de MasterOfChakhaL
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    2 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 147
    Points : 3 264
    Points
    3 264
    Par défaut
    et comme ca?

    http.onreadystatechange = handleHttpResponse();

    ca marche?

  6. #6
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    j'avais déjà essayé mais malheureusement non, ça ne fonctionne pas !

  7. #7
    Rédacteur
    Avatar de MasterOfChakhaL
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    2 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 147
    Points : 3 264
    Points
    3 264
    Par défaut
    pourquoi ne pas faire le traitement en définissant directement la fonction dans le onreadystatechange??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      var url = "moreinfo.php"; 
      http.open("POST", url, true);
      http.onreadystatechange = function() {
    	if ( http.readyState == 4 && http.status == 200) {
                     alert(http.responseText);
    	}
      }
      http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
      http.send("man_id=" + id);
    EDIT: des petites traces de copier coller en trop...

  8. #8
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par julien.63
    page php moreinfo.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <? echo 'test'; 
    require("../connections/connect.php");
    $db_connect = connect();
    mysql_query ("INSERT INTO test SET text='eva'");
    ?>
    Tu as essayé d'appeller la page moreinfo.php à la main, via un navigateur? Il t'affiche ou pas?

  9. #9
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    si j'appelle directement moreinfo.php via l'url, oui ça fonctionne.

    Par contre je me suis rendu compte que ce code ne fonctionne pas :

    if ( http.readyState == 4 && http.status == 200) {
    alert("test");
    }


    alors que celui ci fonctionne :

    if ( http.readyState == 4) {
    alert("test");
    }


    Si j'essaye de faire :

    if ( http.readyState == 4) {
    alert(http.readyState);
    }


    J'ai bien 4 qui s'affiche (bon là ok c'est normal)

    mais là rien de s'affiche dans mon alerte...

    if ( http.readyState == 4) {
    alert(http.status);
    }


    est ce que ça peut être une piste?

    Merci d'avance

    Julien

  10. #10
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par julien.63
    est ce que ça peut être une piste?
    Et en faisant l'echo après l'include? Ou en fermant la connexion à la base de données?

Discussions similaires

  1. tester si le résultat d'une requete est vide
    Par monstour dans le forum ASP
    Réponses: 13
    Dernier message: 04/10/2006, 14h14
  2. Tester si une table est vide
    Par rsc dans le forum SQL
    Réponses: 2
    Dernier message: 01/07/2004, 16h25
  3. [JDBC]tester si une table est vide
    Par zozolh2 dans le forum JDBC
    Réponses: 5
    Dernier message: 28/05/2004, 09h17
  4. Ne pas afficher un champs qui est vide dans ma BD
    Par yoda_style dans le forum ASP
    Réponses: 3
    Dernier message: 27/04/2004, 11h40
  5. [CR] Avoir seulement une page blanche qd la base est vide???
    Par littleChick dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 13/08/2002, 18h26

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