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 :

Liste ordonnée et transformation en INPUT


Sujet :

JavaScript

  1. #1
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut Liste ordonnée et transformation en INPUT
    Salut

    j'ai un pti projet a faire qui me pose un probleme.
    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
     
    <dl id=projet>
    	<dt id="1">poste</dt>
    	<dd id="1.1">chapitre<img id="coucou" src="" width=15 height=15 onclick="edit(this);" />
    		<ul>
    			<li id="1.1.1">activité</li>
    			<li id="1.1.2">activité2</li>
    		</ul>
    	</dd>
    	<dd>chapitre2
    		<ul>
    			<li>activité</li>
    			<li>activité2</li>
    			<li>activité3</li>
    		</ul>
    	</dd>
    	<dt>poste2</dt>
    </dl>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        <script language=javascript>
        function edit(object)
        {
    			idParent = object.parentNode.id;
    			//alert(idParent);
    			ligne=document.getElementById(idParent);
    			alert(ligne.innerHTML);
        }
     
     
        </script>
    On a donc ici une petite liste avec des niveaux de profondeur.
    je voudrais que lorsqu on clique sur l'image, ca change le titre en le remplassant par un input avec sa valeur.

    Le seul probleme je pense vient du fait que je ne vois pas comment differencier la ligne chapitre suivi de l image de la suite qui reste dans le code html.

    en resumé, je veux garder les sous elements, mais modifier mon titre.

    Si quelqu un voit une idée ;-)

    Pierre

  2. #2
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut
    bon, j'ai un peu chercher et j'essaye de trouver comment recupérer mes valeurs.

    j ai maintenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function edit(object)
        {
    			idParent = object.parentNode.id;
    			//alert(idParent);
    			ligne=document.getElementById(idParent);
    			alert(ligne.firstChild[0]);
        }
    pour essayer d'affiher "chapitre" mais pas moyen de reussir...

    ca doit etre un truc de child et de node qui va dans tous les sens, mais je vois pas comment le gérer...

    Pierre

  3. #3
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut
    ca avance...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ligne.firstChild.nodeValue = "<input type=\"text\" value=\"" + ligne.firstChild.nodeValue + "\"/>";
    seul probleme, ca m ecris le code sur la page au lieu de me l'executer... je peux faire comment ?

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 313
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 313
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par pmithrandir
    seul probleme, ca m ecris le code sur la page au lieu de me l'executer... je peux faire comment ?
    Il faut créer l'élément <input> avec document.createElement( ), lui attribuer les attributs qui vont bien avec setAttribute( ) et enfin le rattacher au <dd> père avec replaceChild( ) (qui par la même occasion virera le noeud texte "chapitre").

  5. #5
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut
    Aprés avoir lu un pti peu de choses sur le sujet, j'ai fait ca :

    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 edit(object)
        {
    			idParent = object.parentNode.id;
    			//alert(idParent);
    			ligne=document.getElementById(idParent);
    			//alert(ligne.firstChild);
    			//alert(ligne.firstChild.nodeValue);
    			var input = document.createElement("<input>");
    			input.setAttribute("type","text");
    			input.setAttribute("value",ligne.firstChild.nodeValue);
    			ligne.replaceChild(input,ligne.firstChild);
    			// = "<input type=\"text\" value=\"" + ligne.firstChild.nodeValue + "\"/>";
     
        }
    Le probleme, ca m enleve bien chapitre, mais ca ne m'affiche pas mon <input>

  6. #6
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut
    trouvé, il ne fallait pas de < et de > dans ma definition

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

Discussions similaires

  1. Listes ordonnées : problème avec le tréma
    Par miltonis dans le forum Requêtes
    Réponses: 21
    Dernier message: 12/10/2007, 17h16
  2. les listes ordonnées <ol>
    Par Grizzzly dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 05/09/2007, 18h44
  3. [XHTML] Valeur d'un élément d'une liste ordonnée
    Par Yogui dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 16/01/2007, 01h12
  4. Liste deroulante et 3 champs input=text ?
    Par isa150183 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/07/2006, 00h08
  5. Comment transformer un input en select?
    Par franculo_caoulene dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 28/12/2005, 10h32

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