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

jQuery Discussion :

Jquery & tableau dynamique


Sujet :

jQuery

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 24
    Points : 31
    Points
    31
    Par défaut Jquery & tableau dynamique
    Bonjour,

    J'aurais besoin de votre aide concernant une utilisation de Jquery associé à un tableau qui se construit dynamiquement.
    Je m'explique : j'ai un tableau dont les lignes sont ajoutées en javascript en fonction des besoins des utilisateurs et dans chaque ligne j'ai un champ qui se remplit automatiquement en fonction d'une liste déroulante.
    Or le programme ne fonctionne que sur la première ligne du tableau et pas sur les suivantes. Comment faire , Merci

    Voici mon code :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8" />
    		<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    		<script type="text/javascript">
                            $(document).ready(function () {
                                    $(".liste").change(function(){
                                            var nom=$(this).attr('name');
                                            alert(nom);
                                    });
                            });
                    </script>
    		<script type="text/javascript">
                            var i=1;
                function ajoute() {
                    var newRow=document.createElement('tr');
                                    newRow.innerHTML='<td><select name="champ1_'+i+'" class="liste"><option value="0"></option><option value="A">A</option><option value="B">B</option><option value="C">C</option><option value="D">D</option></select></td>';
                                    newRow.innerHTML+='<td style="text-align:center;"><input type="text" name="champ2_'+i+'" size="5" maxlength="5" style="text-align:center;" /></td>';
                                    newRow.innerHTML+='<td><input type="button" value="+" onClick="ajoute()" />&nbsp;<input type="button" value="-" onclick="retire(this.parentNode)"></td>';
                                    document.getElementById('tableau').appendChild(newRow);
                                    i++;
                }
                function retire(element) {
                    document.getElementById('tableau').removeChild(element.parentNode);
                    i--;
                }
            </script>
    	</head>
    	<body>
    		<section>
    			<table id='tableau'>
    				<tbody>
    					<tr>
    						<td><select name="champ1_0" class="liste"><option value="0"></option><option value="A">A</option><option value="B">B</option><option value="C">C</option><option value="D">D</option></select></td>
    						<td style="text-align:center;"><input type="text" name="champ2_0" size="5" maxlength="5" style="text-align:center;" /></td>
    						<td><input type="button" value="+" onClick="ajoute()" /></td>
    					</tr>
    				</tbody>
    			</table>
    		</section>
    	</body>
    </html>

    Merci de votre aide.

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Citation Envoyé par Ophiucus02 Voir le message
    Or le programme ne fonctionne que sur la première ligne du tableau et pas sur les suivantes.
    je n'ai pas compris ce qui ne fonctionne pas, les boutons + et - fonctionnent bien

    déjà une remarque, ne fais pas "i--" à la suppression d'une ligne sinon plusieurs lignes peuvent avoir le même numéros
    si par exemple tu ajoutes 4 lignes, tu supprimes la 1re ligne et ensuite tu en rajoutes une, les 2 dernières lignes auront le même numéro

  3. #3
    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
    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
    20
    21
    22
    23
    <section>
        <table id='tableau'>
            <tbody>
                <tr>
                    <td>
                        <select name="champ1_0" class="liste">
                            <option value="0"></option>
                            <option value="A">A</option>
                            <option value="B">B</option>
                            <option value="C">C</option>
                            <option value="D">D</option>
                        </select>
                    </td>
                    <td>
                        <input type="text" name="champ2_0" size="5" maxlength="5">
                    </td>
                    <td>
                        <button class="ajoute">+</button>
                    </td>
                </tr>
            </tbody>
        </table>
    </section>

    Code JavaScript : 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
    27
    28
    29
    30
    31
    32
    33
    $( function(){ // forme abrégée de $(document).ready(function(){
     
        var n = 1,
            jObjTableau =  $( "#tableau" );
     
        jObjTableau.on( "click", ".ajoute", function(){
            var newRow = $( "<tr></tr>" );
     
            newRow.html( '<td><select name="champ1_' + n + '" class="liste">' +
                '<option value="0"></option>' +
                '<option value="A">A</option>' +
                '<option value="B">B</option>' +
                '<option value="C">C</option>' +
                '<option value="D">D</option>' +
                '</select></td>' +
                '<td style="text-align:center;">' +
                '<input type="text" name="champ2_' + n + '" size="5" maxlength="5"></td>' +
                '<td><button class="ajoute">+</button></td>' +
                '<td><button class="retire">-</button></td>' );
     
            $( "#tableau" ).children( "tbody" ).append( newRow );
     
            n++
        });
     
        jObjTableau.on( "click", ".retire", function(){
            $( this ).parents( "tr" ).remove();
        });
     
        jObjTableau.on( "change", ".liste", function(){
            console.log( this.name );
        });
    });

    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.)

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/03/2015, 18h31
  2. Pagination tableau dynamique en Jquery
    Par mohamedsghaier dans le forum jQuery
    Réponses: 2
    Dernier message: 03/05/2013, 16h04
  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