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

Langage PHP Discussion :

Cocher Checkbox en fonction de la BDD


Sujet :

Langage PHP

  1. #21
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par mikael2235 Voir le message
    Sur ma page je n'ai rien du tout
    Tu devrais avoir au moins le cadre.
    Tu peux relancer et faire un clic droit sur le résultat puis afficher la source stp.
    Vérifie que tu as des élements dans body

  2. #22
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Points : 104
    Points
    104
    Par défaut
    Non pas de tableau .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                <div id="ColonneGauche" class="cadre">
                                Pas de données à afficher
                </div>

  3. #23
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    ce n'est pas possible que $data perde ses données comme ça par magie. Cela peut arriver si par hasard tu faisais appel à une variable $data dans le script inclus 'menu.php'.
    Vérifie stp.

  4. #24
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Points : 104
    Points
    104
    Par défaut
    Très juste, c'est ça !!! Je modifie...

    C'est bon, le problème venait de là, j'avais aussi une variable data.

    Me champs se completent bien, sauf pour les listes déroulantes. Elles comportent le bon nombre de ligne, mais il n'y a pas de texte.
    Le problème doit venir de là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <option value="{$hsc($value)}"{$is_selected}>{$hsc($inner_html)}</option>
    Et il y a la même chose pour les animateurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $anim[] = $build_option('animateur', $row['loginName'], "{$row['lastName']} {$row['firstName']} ({$row['loginName']})");
    Les double quotes doivent poser problème.

  5. #25
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par mikael2235 Voir le message
    Très juste, c'est ça !!! Je modifie
    J'étais en train de me transformer derrière mon clavier en chèvre...

    Il faut manipuler les include avec beaucoup de précautions. C'est très difficile à déboguer et je ne t'en parle même pas quand tu joues aux poupées russes avec les includes...

  6. #26
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par mikael2235 Voir le message
    Me champs se completent bien, sauf pour les listes déroulantes
    normal, j'ai laissé trainé un bug.
    je corrige de suite

  7. #27
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Points : 104
    Points
    104
    Par défaut
    Je dois partir à midi, repas de famille ...

    Je t'ai répondu au post #24.

  8. #28
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Voilà yapuka essayer avec 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
    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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    <?php
     
    // fonction d'échappement pour le rendu
    $hsc    = function($p) { return htmlspecialchars($p, ENT_QUOTES); };
    $render = function($p) use ($hsc) { echo $hsc($p); };
     
    $data = array();
     
    if (isset($_GET['activ'])) {
        $sql  = "SELECT * FROM Activite WHERE id_act = '".mysql_real_escape_string($_GET['activ'])."'";
        $exec = mysql_query($sql) or die(mysql_error());
        $data = mysql_fetch_assoc($exec);
        $url  = 'Trait_Modif_activite.php?activ='.$_GET['activ'];
     
     
        /* FACTORISATION DU RENDU DU CODE POUR LA LISIBILITÉ */
        // fonction case cochée pour la fréquence
        $checked =
            function($p) use ($data)
            {
                echo (stripos($data['frequence'], $p) !== false) ? 'checked="checked"' : '';
            };
     
        // fonction pour les zones de liste qui return une ligne <option></option> entièrement formatée
        $build_option =
            function($key, $value, $txt = null) use ($data, $hsc)
            {
                $inner_html  = ($txt === null) ? $value : $txt;
                $is_selected = ($data[$key] === $value) ? ' selected="selected"' : '';
     
                return
    <<<HTML
    <option value="{$hsc($value)}"{$is_selected}>{$hsc($inner_html)}</option>
    HTML;
            };
     
        // fonction pour les zones de liste qui echo une ligne <option></option> entièrement formatée
        $sel_option = function($key, $value, $txt = null) use ($build_option) { echo $build_option($key, $value, $txt); };
     
     
        // liste des animateurs
        $anim = array();
        $sql  = 'SELECT * FROM Member WHERE TypeCompte = "animateur" ORDER BY lastName';
        $exec = mysql_query($sql) or die(mysql_error());
        while($row = mysql_fetch_assoc($exec)) {
            $anim[] = $build_option('animateur', $row['loginName'], "{$row['lastName']} {$row['firstName']} ({$row['loginName']})");
        }
    }
    ?>
    <body>
        <div id="wrapper">
            <div id="header"><?php include 'menu.php' ?></div>
            <div id="content">
                <div id="ColonneGauche" class="cadre">
                <?php if (empty($_SESSION['user']) || ($_SESSION['user']['type'] === 'user')): ?>
                    Vous n'etes pas autorisé à utiliser ce service
     
                <?php elseif (empty($data)): ?>
                    Pas de données à afficher
     
                <?php else: ?>
                    <h1>Administration ... (session : <?php $render($_SESSION['user']['prenom']) ?>)</h1>
                    <h2>Modifier l'activité : <?php $render($data['activite']) ?></h2>
                    <form method="post" action="<?php echo $url ?>">
                        <table class="none">
                            <tr>
                                <td class="bold_right">ID</td>
                                <td><input id="id" type="text" name="id" value="<?php $render($data['id_act']) ?>" size="43" readonly="readonly" /></td>
                            </tr>
                            <tr>
                                <td class="bold_right">Date d'ajout</td>
                                <td><input id="DateAjout" type="text" name="DateAjout" value="<?php $render($data['DateAjout']) ?>" size="43" readonly="readonly" /></td>
                            </tr>
                            <tr>
                                <td class="bold_right">Nom de l'activité</td>
                                <td><input id="activite" type="text" name="activite" value="<?php $render($data['activite']) ?>" size="43" /></td>
                            </tr>
                            <tr>
                                <td class="bold_right">Catégorie</td>
                                <td><input id="categorie" type="text" name="categorie" value="<?php $render($data['categorie']) ?>" size="43" /></td>
                            </tr>
                            <tr>
                                <td class="bold_right">Sous-Catégorie</td>
                                <td><input id="sscategorie" type="text" name="sscategorie" value="<?php $render($data['sscategorie']) ?>" size="43" /></td>
                            </tr>
                            <tr>
                                <td class="bold_right">Description</td>
                                <td>
                                    <textarea cols="80" class="ckeditor" id="editeur" name="editeur" rows="50"><?php $render($data['description']) ?></textarea>
                                    <script type="text/javascript">CKEDITOR.replace( 'editeur' );</script>
                                </td>
                            </tr>
                            <tr>
                                <td class="bold_right">Frequence</td>
                                <td>
                                    <input type="checkbox" name="frequence[]" value="Annee" <?php $checked('Annee') ?> />Toute l'année
                                    <input type="checkbox" name="frequence[]" value="Vacances" <?php $checked('Vacances')  ?> />Vacances
                                    <input type="checkbox" name="frequence[]" value="Occasionnel" <?php $checked('Occasionnel')  ?> />Occasionnel
                                 </td>
                            </tr>
                            <tr>
                                <td class="bold_right">Plage</td>
                                <td>
                                    <select name="plage" id="plage">
                                        <?php
                                        $sel_option('plage', 'Matin');
                                        $sel_option('plage', 'Après-midi');
                                        $sel_option('plage', 'Soirée');
                                        $sel_option('plage', 'Journée');
                                        ?>
                                    </select>
                                </td>
                            </tr>
                            <tr>
                                <td class="bold_right">Planning</td>
                                <td>
                                    <select name="planning" id="planning">
                                        <?php
                                        $sel_option('planning', 'Lundi');
                                        $sel_option('planning', 'Mardi');
                                        $sel_option('planning', 'Mercredi');
                                        $sel_option('planning', 'Jeudi');
                                        $sel_option('planning', 'Vendredi');
                                        $sel_option('planning', 'Samedi');
                                        $sel_option('planning', 'Dimanche');
                                        $sel_option('planning', 'Plusieurs Jours');
                                        ?>
                                    </select>
                                </td>
                            </tr>
    '                       <tr>
                                <td class="bold_right">Public</td>
                                <td>
                                    <select name="public" id="public">
                                        <?php
                                        $sel_option('public', 'Enfants');
                                        $sel_option('public', 'Adolescents');
                                        $sel_option('public', 'Adultes');
                                        $sel_option('public', 'Tous');
                                        ?>
                                    </select>
                                </td>
                            </tr>
                            <tr>
                                <td class="bold_right">Lieu</td>
                                <td>
                                    <select name="lieu" id="lieu">
                                        <?php
                                        $sel_option('lieu', 'Harpe', 'Ferme de la Harpe');
                                        $sel_option('lieu', 'Parc', 'Maison du Parc');
                                        $sel_option('lieu', 'Beauregard');
                                        $sel_option('lieu', 'Autres')
                                        ?>
                                    </select>
                                </td>
                            </tr>
                            <tr>
                                <td class="bold_right">Cours</td>
                                <td>
                                    <select name="cours" id="cours">
                                        <?php
                                        $sel_option('cours', 'Particulier');
                                        $sel_option('cours', 'Collectif');
                                        ?>
                                    </select>
                                </td>
                            </tr>
                            <tr>
                                <td class="bold_right">Animateur</td>
                                <td>
                                    <select name="animateur" id="animateur">
                                        <?php echo implode("\n", $anim) ?>
                                    </select>Uniquement le prénom de l'animateur apparaitra sur le site
                                </td>
                            </tr>
                            <tr>
                                <td class="bold_right">Tarif</td>
                                <td>
                                    <select name="tarif" id="tarif">
                                        <?php
                                        $sel_option('tarifs', 'moins de 30 €');
                                        $sel_option('tarifs', 'de 30 à 100 €');
                                        $sel_option('tarifs', 'de 100 à 250 €');
                                        $sel_option('tarifs', 'supérieur à 250 €');
                                        ?>
                                    </select>
                                </td>
                            </tr>
                            <tr>
                                <td class="bold_right">Photo</td>
                                <td><input type="text" name="photo" value="<?php $render($data['Photo']) ?>" size="43" id="photo"></td>
                            </tr>
                            <tr>
                                <td class="bold_right">Visible sur le site</td>
                                <td>
                                    <select name="visible" id="visible">
                                        <?php
                                        $sel_option('Visible', 'O');
                                        $sel_option('Visible', 'N');
                                        ?>
                                    </select>
                                </td>
                            </tr>
                            <tr>
                                <td class="bold_right">News</td>
                                <td>
                                    <textarea cols="80" class="ckeditor" id="news" name="news" rows="50"><?php $render($data['news']) ?></textarea>
                                    <script type="text/javascript">CKEDITOR.replace( 'news' );</script>
                                </td>
                            </tr>
                        </table>
                    </form>
                <?php endif ?>
                </div>
                <div id="ColonneDroite" class="cadre"><?php include 'colonneDroite.php' ?></div>
            </div>
            <div id="footer"><?php include 'footer.php' ?></div>
        </div>
    </body>
    </html>

  9. #29
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Points : 104
    Points
    104
    Par défaut
    ça fonctionne maintenant pour les listes déroulantes.
    J'ai mon champs news à la fin de la page qui n'affiche plus rien, alors qu'avec le code d'avant, ça fonctionnait. Etrange, pourtant rien semble n'avoir changé.

  10. #30
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Recopie mon code du post précédent, j'avais laissé trainé un $hsc avec news...

  11. #31
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Points : 104
    Points
    104
    Par défaut
    Oui j'ai regardé sur le champ description, ou tu as mis un $render...
    ça fonctionne.
    Je ne suis pas là cet aprem. Je regarde le code plus en détails ce soir...
    En tout cas, merci pour ton aide
    Maintenant ça va etre à moi de bosser

  12. #32
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Points : 104
    Points
    104
    Par défaut
    Encore une question, est-il possible avec ton code de l'utiliser si je veux mettre des cases à cocher pour d'autres champs ? et sans devoir recopier cette fonction pour chaque champs ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        // fonction case cochée pour la fréquence
        $checked =
            function($p) use ($data)
            {
                echo (stripos($data['frequence'], $p) !== false) ? 'checked="checked"' : '';
            };
    Merci

  13. #33
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,
    Citation Envoyé par mikael2235 Voir le message
    Encore une question, est-il possible avec ton code de l'utiliser si je veux mettre des cases à cocher pour d'autres champs ? et sans devoir recopier cette fonction pour chaque champs ?
    Bien sûr inspires-toi de la fonction $build_option

  14. #34
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Points : 104
    Points
    104
    Par défaut
    Ok merci, ça fonctionne !

    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
     
        // fonction pour les zones de liste qui return une ligne <option></option> entièrement formatée
        $build_option_chkbx =
            function($key, $value, $txt = null) use ($data, $hsc)
            {
                $inner_html  = ($txt === null) ? $value : $txt;
                $is_checked = ($data[$key] === $value) ? ' checked="checked"' : '';
     
                return
    <<<HTML
    <input type="checkbox" name="{$hsc($key)}[]" value="{$hsc($value)}"{$is_checked}>{$hsc($inner_html)}
    HTML;
            };
        // fonction pour les cases à cocher qui echo une ligne entièrement formatée
        $sel_option_chkbx = function($key, $value, $txt = null) use ($build_option_chkbx) { echo $build_option_chkbx($key, $value, $txt); };
    [EDIT] : Finalement non, si j'ai plusieurs valeurs checked="checked", ça ne fonctionne pas.

  15. #35
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Y a de l'idée mais ça serait mieux comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $build_checkbox =
            function($data_key, $value, $txt = null) use ($data, $hsc)
            {
                $inner_html = ($txt === null) ? $value : $txt;
                $is_checked = (stripos($data[$data_key], $value) === false) ? '' : ' checked="checked"';
     
                return
    <<<HTML
    <input type="checkbox" name="{$data_key}[]" value="{$hsc($value)}" {$is_checked} />{$hsc($inner_html)}
    HTML;
            };
     
        $helper_checkbox = function($data_key, $value, $txt = null) use ($build_checkbox) { echo $build_checkbox($data_key, $value, $txt); };
    et ensuite dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <tr>
        <td class="bold_right">Frequence</td>
        <td>
            <?php
            $helper_checkbox('frequence', 'Annee', "Toute l'année");    
            $helper_checkbox('frequence', 'Vacances');    
            $helper_checkbox('frequence', 'Occasionnel');    
            ?>
        </td>
    </tr>

  16. #36
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Points : 104
    Points
    104
    Par défaut
    Il ne manquait que quelques subtilités...

    Je veux faire la même chose pour les animateurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        // liste des animateurs
        $anim = array();
        $sql  = 'SELECT * FROM Member WHERE TypeCompte = "animateur" ORDER BY lastName';
        $exec = mysql_query($sql) or die(mysql_error());
        while($row = mysql_fetch_assoc($exec)) {
            //$anim[] = $build_option('animateur', $row['loginName'], "{$row['lastName']} {$row['firstName']} ({$row['loginName']})");
        }
    Je remplace par, mais ça ne marche pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    		$anim[] = $helper_checkbox('animateur', $row['loginName'], "{$row['lastName']} {$row['firstName']} ({$row['loginName']})");
        }
    Il doit pourtant bien me générer toutes les lignes input ?

    Et je les affiche toujours avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo implode("\n", $anim) ?>

  17. #37
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Ton problème vient du fait que $build_checkbox ne travaille que sur les données de $data (les activités) et pas celle des animateurs
    regardes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $build_checkbox =
            function($data_key, $value, $txt = null) use ($data, $hsc)
    Il faut encore généraliser d'un cran la fonction $build_checkbox, tu fais un essai ?

  18. #38
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Points : 104
    Points
    104
    Par défaut
    Je ne suis pas sur avec le use :

    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
     
        // fonction pour les zones de liste qui return une ligne entièrement formatée
    	$build_checkbox =
            function($req, $key, $value, $txt = null) use ($req, $hsc)
            {
                $inner_html = ($txt === null) ? $value : $txt;
                $is_checked = (stripos($req[$data_key], $value) === false) ? '' : ' checked="checked"';
     
                return
    <<<HTML
    <input type="checkbox" name="{$key}[]" value="{$hsc($value)}" {$is_checked} />{$hsc($inner_html)}
    HTML;
            };
         // fonction pour les cases à cocher qui echo une ligne entièrement formatée
        $helper_checkbox = function($req, $key, $value, $txt = null) use ($build_checkbox) { echo $build_checkbox($req, $key, $value, $txt); };
    et pour la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        // liste des animateurs
        $anim = array();
        $sql  = 'SELECT * FROM Member WHERE TypeCompte = "animateur" ORDER BY lastName';
        $exec = mysql_query($sql) or die(mysql_error());
        while($row = mysql_fetch_assoc($exec)) {
    		$anim[] = $helper_checkbox('row', 'animateur', $row['loginName'], "{$row['lastName']} {$row['firstName']} ({$row['loginName']})");
        }

  19. #39
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Après réflexion, je n'utiliserais pas de cases à cocher pour les animateurs. Du moins pas avec le helper qui a été adapté à ton bout de code. La fonction $build_checkbox va devenir assez complexe pour la généraliser et malgré tout sera limité à ton bout de code. Bref, pas très utile.

  20. #40
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Points : 104
    Points
    104
    Par défaut
    Ah dommage, car une activité peut-etre animé par plusieurs animateurs...
    Tanpis, je me contenterai de mettre l'animateur principal...
    Merci pour ton aide. Je vais adapter ce code à mes autres pages.

    Autrement, petite question, comment je peux faire pour recuperer toutes les datas de l'utilisateur connecté en variable de session.
    $_SESSION[user][nom]=...
    $_SESSION[user][prenom]=...

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Réponses: 7
    Dernier message: 29/07/2011, 00h25
  2. VBA: Cocher automatiquement checkbox en fonction de chiffre
    Par jp222 dans le forum Macros et VBA Excel
    Réponses: 28
    Dernier message: 14/04/2009, 06h44
  3. cocher une checkbox en fonction de son nom
    Par boss_gama dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 08/09/2006, 16h42
  4. [MySQL] Précocher des checkbox en fonction de la BDD ?
    Par renaud26 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/03/2006, 09h22
  5. Bouton pour cocher checkbox
    Par eidole62 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 15/04/2005, 16h28

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