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 :

Tableau Dynamique JS


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 39
    Points : 27
    Points
    27
    Par défaut Tableau Dynamique JS
    Bonjour à tous,

    Voilà je suis sur un petit problème qui m'emcombrent un peu les neuronnes...

    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
    <table style="border-style:dotted; border-color:#3C4E58;">
    <tbody>
    	<tr style="border-style:dotted; border-color:#3C4E58;">
    	 <td style="width:65%">Désignation</td>
    	 <td style="width:17%">Quantité</td>
    	 <td style="width:18%">Prix/U</td>
    	</tr>
    	<div id='cadre'>
    		<tr style="border-style:groove; border-color:#3C4E58;">
    				<td><input type='text' name='des0' style="width: 95%;"/></td>
    				<td><input type='text' name='qte0' style="width: 95%;"/></td>
    				<td><input type='text' name='pri0' style="width: 95%;"/></td>
    		</tr>
    	</div>
    </tbody>
    </table>
    <input type=submit onClick="addInput();" />

    Simple tableau html avec deux lignes, le soucis c'est que je veux mettre un nombre de ligne infini en ajoutant une ligne par simple clique sur un bouton.

    JavaScript:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function addInput() {
    	var c,c2,contenu
    	c = document.getElementById("cadre");
    	contenu = document.getElementById("cadre").innerHTML;
    	c2	= c.getElementsByTagName('input');
    	len = c2.length / 3;
    	c.innerHTML = contenu+"<tr style='border-style:groove; border-color:#3C4E58;'><td><input type='text' name='des"+len+"' style='width: 95%;'/></td><td><input type='text' name='qte"+len+"' style='width: 95%;'/></td><td><input type='text' name='pri"+len+"' style='width: 95%;'/></td></tr>";
    	//document.getElementById("nb").value = len;
    }
    Le problème c'est qu'il m'affiche les ligne complètement en dehors ( au dessus ) de mon tableau, rien à faire elles ne veulent pas rentrer dans le tableau...

    Quelqu'un aurait un peu de grâce pour m'aider ?

    Merci beaucoup

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Le HTML du tableau ne convient pas. Ce <div> n'a rien à faire au milieu des <tr>. Corrige le DOM comme ceci :

    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
    <table style="border-style:dotted; border-color:#3C4E58;">
    <thead>
    <tr style="border-style:dotted; border-color:#3C4E58;">
    	 <th style="width:65%">Désignation</th>
    	 <th style="width:17%">Quantité</th>
    	 <th style="width:18%">Prix/U</th>
    	</tr>
    </thead>
    <tbody id="cadre">
    	<tr style="border-style:groove; border-color:#3C4E58;">
    		<td><input type='text' name='des0' style="width: 95%;"/></td>
    		<td><input type='text' name='qte0' style="width: 95%;"/></td>
    		<td><input type='text' name='pri0' style="width: 95%;"/></td>
    	</tr>	
    </tbody>
    </table>

    Ca devrait déjà aller mieux. Aussi, évite les styles CSS en inline dans le HTML et mets-les plutôt dans une feuille de style séparée.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 39
    Points : 27
    Points
    27
    Par défaut
    Merci Sylvain ta syntaxte est plus juste que celle que j'ai trouvé.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <tbody id="cadre">
    	<tr style="border-style:dotted; border-color:#3C4E58;">
    	 <td style="width:65%">Désignation</td>
    	 <td style="width:17%">Quantité</td>
    	 <td style="width:18%">Prix/U</td>
    	</tr>
            <tr style="border-style:groove; border-color:#3C4E58;">
    	  <td><input type='text' name='des0' style="width: 95%;"/></td>
    	  <td><input type='text' name='qte0' style="width: 95%;"/></td>
    	  <td><input type='text' name='pri0' style="width: 95%;"/></td>
    	</tr>
    </tbody>

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/03/2015, 18h31
  2. récupérer la memoire et tableau dynamique
    Par Guigui_ dans le forum Langage
    Réponses: 6
    Dernier message: 06/01/2003, 08h02
  3. AFFICHER UN TABLEAU DYNAMIQUE
    Par ghassenus dans le forum Langage
    Réponses: 2
    Dernier message: 28/12/2002, 14h19
  4. [Kylix] tableau dynamique
    Par sdoura2 dans le forum EDI
    Réponses: 1
    Dernier message: 31/10/2002, 08h57
  5. Réponses: 4
    Dernier message: 13/05/2002, 16h43

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