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 :

Tester un formulaire généré dynamiquement


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 129
    Par défaut Tester un formulaire généré dynamiquement
    Bonjour,

    Alors je suis quasi sûr que c'est une question "bidon" mais je suis sur un projet php depuis pas mal de temps et il me manque une dernière chose pour finaliser mon projet : un formulaire qui me servira à trier des photos.

    Ce formulaire est composé de 3 parties :

    - liste des machines sous formes de checkbox
    ( ici il y a deux parties : machines Linux et les machines Windows (Important pour la suite de ma question))

    - liste du "matériel" sous forme de bouton radio.

    - liste de fréquence sous forme de bouton radio.

    J'aimerai envoyer mon formulaire à chaque fois qu'on clic sur un élément ; Bon ça, ça va je saurai faire à la limite avec submit().
    Mais j'aimerai surtout pouvoir tester ce formulaire :
    la partie "machine" sous forme de checkbox, l'utilisateur doit pouvoir sélectionner 1 machine minimum mais seulement soit dans la partie "linux" soit dans la partie "windows". si il coche dans linux et dans windows j'aimerai que soit ça décoche toutes les checkbox windows ou linux soit que ça affiche un message d'erreur. J'ai besoin de votre aide, orientation sur ce point car cette liste de machine/checkbox est générée de façon dynamique et je ne peux "savoir" le nombre exacte de machines donc définir une méthode de vérification statique.. Enfin bref je ne sais pas faire ça, et comme je pensais utiliser que PHP je n'ai jamais appris le java-script
    donc... pour essayer de gagner un peu de temps de vous demande ce petit renseignement =)

    Je vous mets le code de mon formulaire :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    <?php   
            $machineLinux = get_machines_l();
                    sort($machineLinux[0]);
            $machineWindows = get_machines_w();
                    sort($machineWindows[0]);
    ?>	
    <form method="POST" action="macmon.php" id="formulaire">
     
    	<div id="cadreMachine"><fieldset>
    	<legend>Machines :</legend>
    	<table>
    		<td>
     
    		<tr><b>Linux :</b><br/>
     
    		<?php
                    foreach($machineLinux[0] as $elementL)
                    {
                            if($elementL == "localhost")
                            {
                                    echo'<input type="checkbox" name="'.$elementL.'" id="'.$elementL.'" checked="checked"/> <label for="'.$elementL.'">'.$elementL.'</label><br/>';
                            }else
                            {
                                    echo'<input type="checkbox" name="'.$elementL.'" id="'.$elementL.'" /> <label for="'.$elementL.'">'.$elementL.'</label><br/>';
                            }
                    }
                    ?>
    		</tr>
    <br/>
    		<tr><b>Windows :</b><br/>
     
    		<?php
                    foreach($machineWindows[0] as $elementW)
                    {
                            echo'<input type="checkbox" name="'.$elementW.'" id="'.$elementW.'"/> <label for="'.$elementW.'">'.$elementW.'</label><br/>';
                    }
                    ?>
    		</tr>
    	</table>
    	</fieldset>
    	</div>
     
    		<div id="cadreplug">
    	<fieldset>
    	<legend>Plugins :</legend>
     
    		<input type="radio" name="plugin" value="LasirCpu" id="idPlug" checked="checked" onclick=""/><label for="plugin">CPU</label><br/>
    		<input type="radio" name="plugin" value="LasirCpuAdmin" id="idPlug"/><label for="plugin">CPUAdmin</label><br/>
    		<input type="radio" name="plugin" value="LasirDisque" id="idPlug"/><label for="plugin">Disque Dur</label><br/>
    		<input type="radio" name="plugin" value="LasirMemory" id="idPlug"/><label for="plugin">Mémoire RAM</label><br/>
    		<input type="radio" name="plugin" value="LasirReseau" id="idPlug"/><label for="plugin">Réseau</label><br/>
    		<input type="radio" name="plugin" value="LasirUtilisateur" id="idPlug"/><label for="plugin">Utilisateur (Windows)</label><br/>
     
    	</fieldset>
    	</div>
     
    	<div id="cadreFreq">
    	<fieldset>
    	<legend>Fréquence :</legend>
     
    		<input type="radio" name="frequence" value="day" id="idFreq" checked="checked" /> <label for="frequence">Jour</label><br/>
    		<input type="radio" name="frequence" value="week" id="idFreq"/> <label for="frequence">Semaine</label><br/>
    		<input type="radio" name="frequence" value="month" id="idFreq"/> <label for="frequence">Mois</label><br/>
    		<input type="radio" name="frequence" value="year" id="idFreq"/> <label for="frequence">Année</label><br/>
     
    	</fieldset>
    	</div>
    	</form>
    Merci de vos conseils/aides

    EDIT: Mes ID je dois les mettre en "fixe"? car j'ai vu sur certain tuto qu'il fallait plutot qu'ils soient nommés de la même façon que les "name". Parceque si je fais une boucle pour tester tout mes checkbox je ne peux pas me baser sur un ID dynamique.. enfin je crois

  2. #2
    Membre expérimenté
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Par défaut
    Ici tu pourrais donner des classes à tes éléments, pour les éléments "linux" la class Linux et pour les elements Windows la classe "windows". Apres tu peux les sélectionner facilement avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var elements = document.getElementsByClassName("Linux");
    Un exemple, si il coche Linux, il faut que tu déclenches cette fonction grâce à un évènement onchange :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function uncheckAllWindows() {
        var elements = document.getElementsByClassName("windows");
        for (var i = 0; i < elements.count;i++) {
            elements[i].checked = false;
        }
    }

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 129
    Par défaut
    Ok d'accord donc j’enlève l'id de mes input et je remplace par un class.
    Il me reste plus qu'à faire l'équivalent pour "si une case cocher dans windows alors je uncheck toutes les case linux".

    Sinon pour parcourir les éléments de mon formulaire pour faire appel à différents tests, j'ai vu la propriété "length", elle marche comment? j'en aurai certainement besoin pour faire toutes mes vérifications non?

  4. #4
    Membre expérimenté
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Par défaut
    oui désoe pour mon code au dessus, c'est "elements.length" et pas "elements.count" !!

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 129
    Par défaut
    Ah d'accord ^^ je me disais aussi... enfin c'est pas grave

    Merci du conseil j'applique ça pour mes verif' tout en essayant de complexifier le code pour coller à mon projet

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

Discussions similaires

  1. Evénement sur un formulaire généré dynamiquement
    Par dotEden dans le forum jQuery
    Réponses: 8
    Dernier message: 13/06/2013, 14h51
  2. [VB.NET]Comment identifier contrôles générés dynamiquement?
    Par toniolol dans le forum Windows Forms
    Réponses: 8
    Dernier message: 21/12/2005, 07h58
  3. formulaire tabulaire dynamique
    Par whoesnext dans le forum IHM
    Réponses: 1
    Dernier message: 15/12/2005, 17h48
  4. tester existance Formulaire
    Par LeScandinave dans le forum Access
    Réponses: 3
    Dernier message: 02/11/2005, 11h20
  5. écrire dans un champs généré dynamiquement
    Par scoder dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 08/12/2004, 10h14

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