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 :

activer dynamiquement un radio en fonction du checkbox


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Par défaut activer dynamiquement un radio en fonction du checkbox
    Bonjour à tous.

    voila j'ai une liste qui se crée dynamiquement.

    Pour chaque ligne de ma liste j'ai ceci:

    checkbox - bouton radio Yes/No - Name - Date

    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $checked_checkbox = isset($_POST['tab'][$numero]['0']) ? 'checked' : '';
    						$checked_radio_yes = (isset($_POST['tab'][$numero]['1']) &&  $_POST['tab'][$numero]['1'] == '1') ? 'checked' : ''; 
    						$checked_radio_non = (isset($_POST['tab'][$numero]['1']) &&  $_POST['tab'][$numero]['1'] == '0') ? 'checked' : ''; 
     
    						echo '<tr>';
    						echo '<td class="col1"><input type="checkbox" name="tab['.$numero.'][0]" value="'.$id.'" '.$checked_checkbox.''; echo'></td>';  
              				echo '<td class="col2"><input class="radio" type="radio" name="tab['.$numero.'][1]" value="1" '.$checked_radio_yes.'><label class="green">Yes</label>
    											   <input class="radio" type="radio" name="tab['.$numero.'][1]" value="0" '.$checked_radio_non.'><label class="red">No</label>';
    je voudrais en faite que mes boutons radio s'active uniquement que si mon checkbox de la ligne soit cochée.

    je suis nul en javascript et je n'ai pas trouver mon bonheur en fouillant le web. J'ai trouver des exemples mais pas en dynamique...

    Merci de votre aide

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Par défaut
    voici le code généré au cas ou...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <table id="separation">
                        <tr>
                            <td class="col1"><label class="text8">Interest</label></td>
                            <td class="col2"><label class="text8">Send</label></td>
                            <td class="col3"><label class="text8">Name</label></td>
                              <td class="col4"><label class="text8">Publication date</label></td>
                         </tr>
                        <tr><td class="col1"><input type="checkbox" name="tab[1][0]" value="3" ></td><td class="col2"><input class="radio" type="radio" name="tab[1][1]" value="1" ><label class="green">Yes</label>
                                                   <input class="radio" type="radio" name="tab[1][1]" value="0" ><label class="red">No</label><td class="col3">10 steps to Green IT</td><td class="col4"> 2008-10-16</td>
                             </tr><tr><td class="col1"><input type="checkbox" name="tab[2][0]" value="7" ></td><td class="col2"><input class="radio" type="radio" name="tab[2][1]" value="1" ><label class="green">Yes</label>
                                                   <input class="radio" type="radio" name="tab[2][1]" value="0" ><label class="red">No</label><td class="col3">European Energy Markets Observatory</td><td class="col4"> 2007-11-12</td>
    Donc je voudrais que quand je coche ma checkbox de la ligne 1 par exemple les 2 radio de la ligne 1 s'active.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Par défaut
    Re bonjour.

    alors j'ai chercher et j'en suis arrivé a ce stade :

    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <td class="col1"><input type="checkbox" name="tab'.$numero.'[cb]" value="'.$id.'"></td>'; 
    <td class="col2"><input class="radio" type="radio" name="tab'.$numero.'[ra]" value="1"><label class="green">Yes</label>
                              <input class="radio" type="radio" name="tab'.$numero.'[ra]" value="0" ><label class="red">No</label>
    le code qui est généré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <tr><td class="col1"><input type="checkbox" id="chkbox1" onClick="griser() name="tab1[cb]" value="3"  ></td><td class="col2"><input class="radio" type="radio" id="chkrad1" name="tab1[ra]" value="1" ><label class="green">Yes</label>
                                                   <input class="radio" type="radio" id="chkrad1" name="tab1[ra]" value="0" ><label class="red">No</label><td class="col3">10 steps to Green IT</td><td class="col4"> 2008-10-16</td>
                             </tr><tr><td class="col1"><input type="checkbox" id="chkbox2" onClick="griser() name="tab2[cb]" value="7"  ></td><td class="col2"><input class="radio" type="radio" id="chkrad2" name="tab2[ra]" value="1" ><label class="green">Yes</label>
                                                   <input class="radio" type="radio" id="chkrad2" name="tab2[ra]" value="0" ><label class="red">No</label><td class="col3">European Energy Markets Observatory</td><td class="col4"> 2007-11-12</td>
                             </tr><tr><td class="col1"><input type="checkbox" id="chkbox3" onClick="griser() name="tab3[cb]" value="17"  ></td><td class="col2"><input class="radio" type="radio" id="chkrad3" name="tab3[ra]" value="1" ><label class="green">Yes</label>
                                                   <input class="radio" type="radio" id="chkrad3" name="tab3[ra]" value="0" ><label class="red">No</label><td class="col3">Global CIO Survey 2008</td><td class="col4"> 2008-03-11</td>
    la fonction griser() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <script>
        function griser()
        {
            if (document.forms["addcontacts"].nomducheckbox.checked)
            {
            document.getElementById('idduradio').disabled="true" ;
            }
            else
            {
            document.getElementById('idduradio').disabled="false" ;
            }
        }
        </script>
    je pense que mon code est bon mais je n'arrive pas a récupérer le nomducheckbox et idduradio. ( je debute en javascript donc je ne connais pas toutes les syntaxes )

    Je rappelle : je voudrais, pour chaque ligne ,en cliquant sur ma checkbox , griser les 2 boutons radio

    Merci

  4. #4
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Par défaut
    Bonjour,
    Il faut passer les paramètres lorsque tu appelles la fonction griser() :
    Tu modifies ton script comme ceci :
    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
    <script>
        function griser(addcontacts,idduradio)
        {
            if (document.getElementById(addcontacts).checked == true)
            {
    		document.getElementById(idduradio+"1").disabled = "disabled" ;
    		document.getElementById(idduradio+"2").disabled = "disabled" ;
            }
            if (document.getElementById(addcontacts).checked == false)
            {
    		document.getElementById(idduradio+"1").disabled = "";
    		document.getElementById(idduradio+"2").disabled = "";
            }
        }
    </script>
    Ensuite sur le onclick tu ajoute les paramètres suivants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="checkbox" id="chkbox1" onClick="griser('chkbox1','chkrad');" name="tab1[cb]" value="3">
    <input class="radio" type="radio" id="chkrad1" name="tab1[ra]" value="1" ><label class="green">Yes</label>
    <input class="radio" type="radio" id="chkrad2" name="tab1[ra]" value="0" ><label class="red">No</label>
    Par contre fait attention de n'avoir que des ID uniques ...

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Par défaut
    Merci mais ton code marche pour du statique.

    Hors ici je suis en dynamique. j'avais mis 2 exemples de code générer mais je peux en avoir 20... 100...

    donc il me faudrait quil prenne en compte ma variable dynamique

  6. #6
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Par défaut
    Re,
    A toi de modifier les paramètres que je t'ai indiqué avec les variables PHP ... dans le onclick ...

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

Discussions similaires

  1. activer fonction quand checkbox est cochée dans formulaire php
    Par knebhi dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 06/10/2010, 11h26
  2. griser un bouton radio en fonction d'un checkbox
    Par mademoizel dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 22/03/2007, 15h28
  3. chgmt automatique de bouton radio en fonction d'autres champs
    Par winnie82 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/06/2006, 14h49
  4. Activation d'un bouton en fonction d'une checkbox
    Par zamoto dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/05/2006, 14h19
  5. Activation d'un champ en fonction d'une réponse
    Par soso78 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 30/05/2005, 09h59

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