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 :

Actualisation affichage d'un sous element


Sujet :

JavaScript

  1. #1
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut Actualisation affichage d'un sous element
    Bonjour,

    j'ai une page contenant mes dossiers. AJAX me permet de me retourner mes sous dossier quand je clique dessus. Et JavaScript me permet d'afficher le contenu de mon sous dossier cliqué.
    Or ces sous dossiers ne s'affichent. Je suis sur que mes sous dossiers sont sur ma page car dans le code généré mes sous dossiers apparaissent.

    Ma page HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    + Dossier1
    + Dossier2
    + Dossier3
    + Dossier4
    Si je clique sur dossier1 (champ Input) rien ne n'affiche de plus alors que dans Firebug j'ai bien les sous dossier (ils sont en grisés).

    Ma fonction d'affichage JS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function CreationArborescence(RetourPHP){
     
        newInput=document.createElement("div");
     
        newInput.id = IdInputSelect;
     
        newInput.value = document.getElementById(IdInputSelect).value;
     
        newInput.innerHTML = RetourPHP;
     
        document.forms[0].elements["./dossier test"].appendChild(newInput);
    }
    Je ne comprend pas pourquoi mes sous dossiers ne s'affichent pas alors que dans le code généré je les vois. Le problème semble venir de mon affectation "appendChild" puisque si je remplace la dernier ligne de mon JS par cela, ça marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.body.appendChild(newInput);

  2. #2
    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
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Salut.

    J'avoue que je ne comprends rien à ta façon de procéder
    Mais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    newInput=document.createElement("div");
    ...   
    newInput.value = document.getElementById(IdInputSelect).value;
    Une div n'a pas de value...
    Ensuite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms[0].elements["./dossier test"].appendChild(newInput);
    C'est quoi ce supposé élément "./dossier test"

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Points : 330
    Points
    330
    Par défaut
    Comme Bovino.

    Mais, j'ajoute que 'IdInputSelect' est bien étrange. On ne voit pas d'où il vient, mais surtout, il vient en affectation (bien qu'il semble déjà utilisé) => id doit être unique.

  4. #4
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut
    J'avoue que je ne comprends rien à ta façon de procéder
    Pour faire des tests j'ai mis des données en dur comme le fameux "./dossier test" qui est un dossier que je veux parcourir et dont le name vaut "./dossier test".
    Dans mon formulaire (forms[0]) se trouve mes dossiers qui ont comme name le chemin du dossier.

    Pour le "IdInputSelect", cela correspond à l'ID du dossier que j'ai sélectionné (de la balise input de type checkbox). Cette balise input contient comme ID le chemin de mon dossier. Et lorsque je clique sur mon dossier, une autre fonction JS mémorise le dossier dans cette variable.

    Une div n'a pas de value...
    En effet, je l'avais mis en commentaire dans mon code mais pas dans ce post c'est un oubli de ma part

    J'espère avoir été assez clair, merci

  5. #5
    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
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    dont le name vaut "./dossier test".
    Ce n'est pas une valeur autorisée pour un attribut name... Dont cela est susceptible de poser des problèmes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    newInput.id = IdInputSelect;
    newInput.value = document.getElementById(IdInputSelect).value;
    IdInputSelect ne semble pas défini... ensuite, tu peux difficilement affecter comme value le value de l'élément que tu viens de créer et à qui tu n'as pas attribué de value
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms[0].elements["./dossier test"].appendChild(newInput);
    balise input de type checkbox
    Heu... donc ton soucis est que tu n'arrives pas à afficher un élément dans une checkbox

  6. #6
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut
    C'est vrai que c'est un peu brouillon se que je fais mais c'est pour test...Je te met le code source généré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <form id="IListeArborescence" method="post" enctype="multipart/form-data" action="#">
     
    <input id="./dossier1" value="dossier1" name="./dossier1" onclick="Parcourir('./dossier1');" type="checkbox">dossier1<br>
    <input id="./dossier test" value="dossier test" name="./dossier test" onclick="Parcourir('./dossier test');" type="checkbox">
        <div id="./dossier test">
            <input id="./dossier test/b" value="b" name="./dossier test/b" onclick="Parcourir('./dossier test/b');" type="checkbox">b<br>
            <input id="./dossier test/Nouv" value="Nouv" name="./dossier test/Nouv" onclick="Parcourir('./dossier test/Nouv');" type="checkbox">Nouv<br>
            <input id="./dossier test/Nouveau dossier" value="Nouveau dossier" name="./dossier test/Nouveau dossier" onclick="Parcourir('./dossier test/Nouveau dossier');" type="checkbox">Nouveau dossier<br>
        </div>dossier test<br>
    <input id="./dossier2" value="dossier2" name="./dossier2" onclick="Parcourir('./dossier2);" type="checkbox">dossier2<br>
     
    </form>
    On remarque bien que ma div a été créé est placé sous mon dossier test mais rien ne s'affiche.

    Ce n'est pas une valeur autorisée pour un attribut name... Dont cela est susceptible de poser des problèmes.
    C'est "." et "/" qui sont interdit dans le name ?

    Merci pour ta persévérance

  7. #7
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut
    Heu... donc ton soucis est que tu n'arrives pas à afficher un élément dans une checkbox
    Tout à fait je viens de me rendre compte que je me suis trompé, comme tu l'as dit j'essayé de mettre des inputs dans une checkbox donc forcement ça ne marche pas.
    La solution : dans mon code généré (par ma fonction PHP) j'ai rajouté une balise div pour avoir ce format :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div id="./.htaccess" value=".htaccess" name="./.htaccess">
         <input onclick="Parcourir('./.htaccess');" type="checkbox">.htaccess
    </div>
    Et ainsi ma fonction JS ressemble à cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function CreationArborescence(RetourPHP){
        newDiv=document.createElement("div");
        newDiv.id = IdInputSelect;
        newDiv.innerHTML = RetourPHP;
    
        document.getElementById("./dossier test").appendChild(newDiv);
    }
    Avant de mettre résolu au pb peut tu m'indiquer si c'est le "." ou le "/" qui sont interdit dans l'ID ou le NAME

    Merci de ton aide

  8. #8
    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
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Général03 Voir le message
    Avant de mettre résolu au pb peut tu m'indiquer si c'est le "." ou le "/" qui sont interdit dans l'ID ou le NAME
    Les deux
    Normalement, un id ou un name ne doivent contenir que des caractères alphanumérique (et commencer par une lettre) ou "_" et "-".

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

Discussions similaires

  1. Problème d'affichage de caractères sous IE
    Par arnaud_verlaine dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 18/07/2005, 22h21
  2. [CSS] Affichage d'images sous Firefox & IE
    Par Flushovsky dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 12/06/2005, 12h55
  3. Affichage de GIF sous visual C++ 6.0
    Par teuf008 dans le forum MFC
    Réponses: 3
    Dernier message: 23/03/2005, 09h17
  4. affichage requête sql sous phppgadmin
    Par kerzut dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 25/02/2005, 12h39
  5. [DBGrid] Affichage d'un sous-ensemble de données
    Par Jean-Jacques Engels dans le forum Bases de données
    Réponses: 3
    Dernier message: 02/09/2004, 16h31

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