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

MkFramework Discussion :

Exemple de gestion de Multi Input CheckBox


Sujet :

MkFramework

  1. #1
    Membre confirmé
    Exemple de gestion de Multi Input CheckBox
    Salut,

    Je me trouve devant un usage que je n'ai jamais eu à faire jusqu’à ce jour sur ce framework.
    Je gère les appartenances d'un produit à des groupes. Un produit peut avoir un groupe au minimum


    Donc j'ai récupéré dans ma base l'ensemble des groupes auquel appartient mon produit.
    Puis sous ma vue j'ai implémenté mon getInputCheckbox()

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <div class="form-group">
        <label class="col-sm-2 control-label">Groupe</label>
        <div class="col-sm-10">
            <?php foreach ($this->tGroup as $iValueKey => $sNameGroupe) <img src="images/smilies/icon_confused.gif" border="0" alt="" title=":?" class="inlineimg" />>
                <?php echo $oForm->getInputCheckbox('groups_id[]', $iValueKey, array()) ?>
                <label ><?php echo $sNameGroupe?></label><br/>
            <?php endforeach; ?>
        </div>
    </div>


    Le HIC ! Les checkBox restent blanc.

    Si je modifie l'intitulé groups_id[] en groups_id [/B, j'obtiens bien au moins un des groupes. Je ne vois pas comment je peux exploiter les checkbox sans un nom de ce type "[B]groups_id[]".

    Auriez-vous un exemple à me donner ?

    Merci,
    La théorie, c'est quand on sait tout et que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !


    Albert Einstein

  2. #2
    Rédacteur

    Il me semble que vous etes en effet oblié de mettre les crochets à la variables, pour que ce soit envoyé comme un tableau justement

    apres vous povuez utiliser la barre de debug pour voir en cliquant sur le bouton POST les valeurs transmises
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. #3
    Rédacteur

    mais attention ce qui est récupéré dans le tableau, c'est la liste des case cochées

    donc si on a 3 entrées

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    undi,
    mardi,
    mercredi
    l

    et qu'on coche que mardi

    au final on va recevoir
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    array(
    mardi)


    mais pour savoir ce qui est coché, il faut faire un in_array sur chaque valeur
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  4. #4
    Rédacteur

    je pense que ceci peut faire l'affaire:

    ajotuer cette methode dans plugin_form et enlevez les accodades dans le nom du champ , on va les mettre dans le plugin
    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
     
    /**
    	* retourne un champ input checkbox
    	* @access public
    	* @param string $sName nom du champ
    	* @param string $sValue valeur du champ checkbox
    	* @param array $tOption options du champ
    	*/
    	public function getInputCheckboxMultiple($sName,$sValue,$tOption=null){
    		$tCurrentValue=$this->getValue($sName);
     
    		$sHtml='<input type="checkbox" ';
    		if( is_array($tCurrentValue) and in_array($sValue,$tCurrentValue) ){
    			$sHtml.='checked="checked" ';
    		}
    		$sHtml.=' name="'.$sName.'[]" value="'.$sValue.'" '.$this->getOption($tOption).'/>';
    		$sHtml.=$this->getMessage($sName);
    		return $sHtml;
    	}
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux