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 :

[JS/DOM] Création d'objets à la volée


Sujet :

JavaScript

  1. #1
    Membre habitué Avatar de MelkInarian
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 144
    Points
    144
    Par défaut [JS/DOM] Création d'objets à la volée
    Bonsoir,
    Je suis presque débutant, je souhaite créer diverses balises HTML à la volée en fonction des données d'une table MySQL.
    J'ai trouvé cette librairie créée et documenté par SpaceFrog : http://www.developpez.net/forums/d53...ynamique-form/ qui fait tout, presque même le café ; mais mon souci c'est que je n'arrive pas à positionner les objets créés dans le div prévu à cet effet.
    Comment indiquer un div parent ?
    Voici l'un de mes tests :
    Code HTML : 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
    	<body>
    		<div id="global">
    			<form name="FormCreation" id="FormCreation" method="post" action="Traitement.php">										<!-- 'form' est un formulaire ; 'method="post"' on récupère les données par $_POST ; 'action="/Cthulhu/_MIcrePJtt.php"' est la page appelée -->
    				<fieldset class="conteneur" name="FS" id="FS"><legend>Mon contenu</legend>
    					<div class="CadreDiv" id="DivTest" >
    						<script type='text/javascript'>
                                                                    var myselect =  $C({'obj':'select',"id":"monid","name":"montexte",'css':{'color':'red'}}) ;
                                                                    $C({'obj':'option', 'id':'Opt1', 'value':'1','innerHTML':'option 1'}) ;
                                                                    $C({'obj':'option', 'id':'Opt2', 'value':'2','innerHTML':'option 2'}) ;
                                                                    $C({'obj':'option', 'id':'Opt3', 'value':'3','innerHTML':'option 3'}) ;
                                                                    $Close(myselect);
     
                                                    </script>
    					</div>
    				</fieldset>
    			</form>
    		</div><!-- #global -->
    	</body>
    </html>
    et le résultat obtenu :
    Code HTML : 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
    <body>
    		<div id="global">
    			<form name="FormCreation" id="FormCreation" method="post" action="Traitement.php">										<!-- 'form' est un formulaire ; 'method="post"' on récupère les données par $_POST ; 'action="/Cthulhu/_MIcrePJtt.php"' est la page appelée -->
    				<fieldset class="conteneur" name="FS" id="FS"><legend>Mon contenu</legend>
    					<div class="CadreDiv" id="DivTest">
    						<script type="text/javascript">
                                                                    var myselect =  $C({'obj':'select',"id":"monid","name":"montexte",'css':{'color':'red'}}) ;
                                                                    $C({'obj':'option', 'id':'Opt1', 'value':'1','innerHTML':'option 1'}) ;
                                                                    $C({'obj':'option', 'id':'Opt2', 'value':'2','innerHTML':'option 2'}) ;
                                                                    $C({'obj':'option', 'id':'Opt3', 'value':'3','innerHTML':'option 3'}) ;
                                                                    $Close(myselect);
     
                                                    </script>
    					</div>
    				</fieldset>
    			</form>
    		</div><select id="monid" name="montexte" style="color: red;"><option id="Opt1" value="1">option 1</option><option id="Opt2" value="2">option 2</option><option id="Opt3" value="3">option 3</option></select><!-- #global -->
     
    </body></html>
    mon select se crée après le div <div class="CadreDiv" id="DivTest">et non dedans.
    Pouvez-vous m'indiquer ce que je dois faire pour arriver à mes fins?
    Merci

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Citation Envoyé par MelkInarian Voir le message
    [...] mon souci c'est que je n'arrive pas à positionner les objets créés dans le div prévu à cet effet.
    Comment indiquer un div parent ? [...]


    Le sélecteur parent n'existe pas en CSS3, mais il est annoncé en CSS4 :

    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ul li! a.active {
       color: red;
    }

    Pour styler les éléments "li" dont les fils "a" possèdent la classe active.

    En attendant CSS4, il faut :
    1. un identificateur sur le parent
    2. ou utiliser Sel
    3. ou utiliser jQuery

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre habitué Avatar de MelkInarian
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 144
    Points
    144
    Par défaut
    Citation Envoyé par danielhagnoul Voir le message
    Le sélecteur parent n'existe pas en CSS3, mais il est annoncé en CSS4 :
    Tant pis, si c'est impossible à adresser je vais me débrouiller autrement, mais c'est dommage.
    je ferai pour chaque balise un truc du genre :
    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
    	function CreerSelect(idParent, idSelect, nameSelect, sizeSelect, ClasseSelect, OnQqChose, Fonction, idOpt, Toptions)
    	{
    		try
    		{
    			var conteneur = document.getElementById(idParent);
    			var selection = document.createElement('select');
    			selection.setAttribute('id', idSelect);
    			selection.setAttribute('name', nameSelect);
    			selection.setAttribute('size', sizeSelect);
    			selection.setAttribute('class', ClasseSelect);
    			selection.setAttribute(OnQqChose, Fonction);
     
    			for (var i = 1 ; i <= Toptions.length ; i++)
    			{
    				var element = document.createElement("option");
    				element.setAttribute('value', (i - 1));
    				element.setAttribute('id', idOpt + i);
     
    				var texte = document.createTextNode(Toptions[i-1] ); 
    				element.appendChild(texte);
    				selection.appendChild(element);
    			}
    			conteneur.appendChild(selection);
    		}
    		catch(e) { alert(e); }
    	}
    mais ce sera un script beaucoup moins compact.
    Merci quand même danielhagnoul!

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

Discussions similaires

  1. erreur de création d'objet dans le dom sous IE
    Par roland34 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/05/2012, 08h49
  2. [PowerBuilder] Création d'objets dynamiques
    Par Béné123456789 dans le forum Powerbuilder
    Réponses: 3
    Dernier message: 12/06/2006, 00h33
  3. [JMenuBar] Création d'objets à la volée
    Par Rampa dans le forum Composants
    Réponses: 5
    Dernier message: 29/06/2005, 13h56
  4. [FLASH MX2004] Création d'objet dynamiquement
    Par noarno dans le forum Flash
    Réponses: 3
    Dernier message: 15/12/2004, 11h00
  5. [IB][IBQUERY][D7 pro] Création de Triggers à la volée.
    Par N1bus dans le forum Bases de données
    Réponses: 6
    Dernier message: 13/10/2004, 14h23

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