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 :

pb getElementById


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 52
    Points : 35
    Points
    35
    Par défaut pb getElementById
    Bonjour à tous,
    j'ai un petit soucis avec la méthode getElementById.
    En fait j'utilise les XmlHttpRequest pour afficher des infos récupérées à partir d'une base de données. J'aimerais afficher ces infos dans des balises <span> (ou autres, ça n'a pas d'importance).
    Voici le bout de code html:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <span>Nombre Total : </span><span id="total"></span>
    le bout de code Javascript qui est inclut à partir d'un fichier .js:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function load_today(provider)
    {
    	var form = document.forms["form"];
    	var equipement = form.elements["equip_sel"];
     
    	var xhr_object = getXHRObject(provider);
     
    	var data = "equipement="+escape(equipement.value)+"&total=total";
    	xhr_object.send(data);
    }
    la fonction getXHRObject() crée simplement l'objet XMLHttpRequest en fonction du navigateur et le paramètre provider représente le script php qui est exécuté.
    D'ailleurs je pense que mon problème vient de ce fichier provider.
    Voici la ligne qui renvoie du code javascript destiné à être évalué:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo 'document.getElementById(\''.$total.'\').innerHTML="'.$result[0]['Total'].'";';
    la variable $total contient juste la chaine "total" passé par GET (il s'agit de mon id) et $result[0]['Total'] est le nombre à inscrie entre les balises <span>

    Le problème c'est que ça ne fonctionne pas du tout et je n'ai aucune erreur dans la console javascript (ce qui ne m'aide pas trop).
    Je débute quand même en javascript et je me demande si il est possible d'écrire comme ça entre deux balises. J'ai déjà essayer de le faire dans des champs de formulaire avec element.value et ça marche très très bien. Seulement là ce serait juste pour de l'affichage, l'utilisateur ne doit pas pouvoir modifier les infos.

  2. #2
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    as tu mis du code dans ton onreadystatechange ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 52
    Points : 35
    Points
    35
    Par défaut
    bien sûr en fait c'est assez classique j'ai récupérer ça dans un tuto
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    xhr_object.onreadystatechange = function() 
    {
    	if(xhr_object.readyState == 4)
    			eval(xhr_object.responseText); 		
    }
    je ne pense pas que ça vienne de ça car j'ai déjà utilisé ce code pour remplir des champs input et mettre à jour de select. Seulement là j'aimerais juste écrire des infos en dehors d'un formulaire.
    Il me semble que ça doit être possible puisque j'ai déjà vu du texte s'afficher dans un DIV pendant le chargement de données d'un XmlHttpRequest.

  4. #4
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "document.getElementById('total').innerHTML='".$result[0]['Total']."';";
    :

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 52
    Points : 35
    Points
    35
    Par défaut
    hum non ça ne marche pas mieux avec les doubles quotes

    Sinon est-ce que la ligne:
    document.getElementById('total').innerHTML
    me permet bien d'écrire du texte entre mes deux balises <span id='total'></span>

    j'avoue ne pas avoir completement saisie la fonction de innerHTML, j'ai fait ça un peu vite fait...

  6. #6
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    oui ca permet bien de faire ce que tu veux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    xhr_object.onreadystatechange = function()
    {
       if(xhr_object.readyState == 4)
             document.getElementById('total').innerHTML =  xhr_object.responseText;
    }
    et dans ton php appelé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $result[0]['Total'];

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mai 2004
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 52
    Points : 35
    Points
    35
    Par défaut
    je me suis rendu compte de deux erreurs déjà c'était :
    $result[0]['TOTAL']
    et pas :
    $result[0]['Total']

    et puis je me suis rendu compte que ma variable $total ne contenait pas la chaine "total", elle est vide en fait, je vais chercher pourquoi mais bon c'est un autre problème
    ça marche avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo 'document.getElementById("total").innerHTML="'.$result[0]['TOTAL'].'";';
    merci beaucoup pour ton aide siddh[/code]

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

Discussions similaires

  1. This.value au lieu de document.getElementById('field').value
    Par yoyot dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/03/2005, 14h02
  2. getElementById et Firefox
    Par ludo65 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/02/2005, 10h56
  3. getelementbyid innerhtml sur Opera?
    Par cynthia dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/12/2004, 10h44
  4. getElementsByName ou getElementById
    Par lepierre dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/10/2004, 15h44

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