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 :

[DOM] document.getElementById is null


Sujet :

JavaScript

  1. #1
    Membre averti Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Points : 386
    Points
    386
    Par défaut [DOM] document.getElementById is null
    Bonsoir.. bonjour
    (je post et j'vais me coucher ...)

    j'explique
    un div, masqué en css (display:none; ) nommé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="modif_book" class="test" >MON DIV TEST</div>
    je test en php si ma variable post arrive
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php 
      if(isset($_POST['id_livre']))
    {
            $livre=$_POST['id_livre'];
     
    echo  '<script type="text/javascript" language="javascript">';
    echo  "montre('modif_book')";
    echo  '</script>';
    }
      ?>
    si elle est là, j'appel la fonction montre('modif_book')

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function montre(nom) { 
      alert(nom);
    			if (document.getElementById) { // DOM3 = IE5, NS6 
    				document.getElementById(nom).style.display = 'block'; 
    			} 
    			else { 
    				if (document.layers) { // Netscape 4 
    					document.layers[nom].display = 'block'; 
    				} 
    				else { // IE 4 
    					document.all[nom].style.display = 'block'; 
    				} 
    			} 
    		}
    elle est pas de moi, c'est vrais mais elle marche très bien

    toutefois, là j'ai l'erreur :
    document.getElementById(nom) is null

    donc, je dois me manquer quelque pars ...

    donc en gros, j'essaye de repérer si ma variable post est passé pour afficher ce div ... et j'y arrive pas ..

    une idée .. merci a ceux qui essayeront de m'aider

  2. #2
    Membre actif Avatar de nod__
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 176
    Points : 226
    Points
    226
    Par défaut
    Aller je parie un cookie que tu as mis ton javascript dans le <head> Donc que tu executes la fonction avant que le DOM soit crée et avant que les élements soient disponibles.

    Le plus simple c'est de déplacer ton javascript dans le body, tout à la fin avant </body>.

    Y'a bien une autre solution, mais j'aime moins.

  3. #3
    Membre averti Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Points : 386
    Points
    386
    Par défaut
    J'étais fatigué je crois ...

    une solution simple m'est venue (sans même du javascript)

    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
     <?php 
      if(isset($_POST['id_livre']))
    {
            $livre=$_POST['id_livre'];
            
    echo'    <style type="text/css">
    <!--
    .test {
            display:block;
    }
    -->
    </style>';
            
    }else{  
            
    echo' <style type="text/css">
    <!--
    .test {
            display:none;
    }
    -->
    </style>';
     }  ?>
    a rendre plus propre, mais ça marche ..

    je le livre ou le cookie ??

  4. #4
    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
    Points : 15 059
    Points
    15 059
    Par défaut
    Salut,

    Exécuter la fonction montre dans le onload du body.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <body <?php 
      if(isset($_POST['id_livre']))
    {
            $livre=$_POST['id_livre'];
            echo  "onload=\"montre('modif_book')\"";
    } 
      ?> />

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

Discussions similaires

  1. document.getElementById() is null
    Par FooFighters dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 22/04/2013, 11h50
  2. [AJAX] document.getElementById() is null
    Par nicocooper dans le forum AJAX
    Réponses: 2
    Dernier message: 31/03/2011, 00h16
  3. document.getElementById retourne null
    Par gabdeschenes dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/10/2009, 08h45
  4. La fonction document.getElementById retourne NULL
    Par zaineb.z dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/05/2008, 18h09
  5. [DOM] [lightbox] document.getElementById('box')
    Par yodark dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/01/2008, 10h40

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