Salut, j'ai créé un formulaire avec le Form Helper de cakePHP et je voudrais savoir comment est ce que je peux appliquer le template que j'ai à mes boutons radio.

<?php

                    $options = array('DH' => 'DH', '%' => '%');
                    $attributes = array('legend' => false,'value' => 'DH','onclick' => 'changeLab();','separator' => ' --ou-- ');
                    echo $this->Form->radio('m_option', $options, $attributes);

?>

**Voici le template

<html>
                    <div class="radio">
                  <label class="">
                    <div class="iradio_minimal-blue checked" style="position: relative;">
                        <input type="radio" name="radio-2" class="" checked="" style="position: absolute; opacity: 0;">
                        <ins class="iCheck-helper" style="position: absolute; top: 0%; left: 0%; display: block; width: 100%; height: 100%; margin: 0px; padding: 0px; border: 0px; opacity: 0; background: rgb(255, 255, 255);"></ins>
                    </div>
                    Option 1
                  </label>
                </div>
</html>

==MERCI

5 réponses


freezlike
Réponse acceptée

Je t'en prie, oui ça désactive pour tout les input c'est ce que je fais tout le temps parce que personnellement et c'est un avis personnel que ça soit pour un frontEnd ou backEnd je désapprouve wrapping div et label de cakephp mais adore son utilisation donc on fait avec :).

Cordialement.

Bonjour,

avant toute chose ton ouverture de formulaire il ressemble à quoi ?

à

$this->Form->create('Model');

ou bien

$this->Form->create('Model',array(avec options);

?

<?php echo $this->Form->create('Discount',array('action'=>'add'),$tickett_id,$event_id); ?>

d'accord faudrait avant toute chose si tu veux personnalisé ton affichage à ce point je te conseil de désactivé les div + label auto que le FormHelper ajoute autour des input en faisant et si j'ai bien compris pour $tickett_id et $event_id tu veut les passer en paramètre dans l'action de ton Formulaire alors il faut que tu fasse comme ça

<?php echo $this->Form->create('Discount',array(
    'action'=>'add',
    'url'=>array($post'id'],$post'slug']),
    'inputDefaults'=>array('label'=>false,'div'=>false)
    )); ?>

après avoir fait cela si tu désire un affichage dans ce sens

<div class="radio">
    <label class="">
        <div class="iradio_minimal-blue checked" style="position: relative;">
            <input type="radio" name="radio-2" class="" checked="" style="position: absolute; opacity: 0;">
            <ins class="iCheck-helper" style="position: absolute; top: 0%; left: 0%; display: block; width: 100%; height: 100%; margin: 0px; padding: 0px; border: 0px; opacity: 0; background: rgb(255, 255, 255);"></ins>
        </div>
        Option 1
    </label>
</div>

ton code doit être comme suit

<div class="radio">
    <label class="">
        <div class="iradio_minimal-blue checked" style="position: relative;">
            <?php echo $this->Form->input('radio-2', array('type' => 'radio', 'checked' => '', 'class' => '', 'style' => 'position: absolute; opacity: 0;')) ?>
            <ins class="iCheck-helper" style="position: absolute; top: 0%; left: 0%; display: block; width: 100%; height: 100%; margin: 0px; padding: 0px; border: 0px; opacity: 0; background: rgb(255, 255, 255);"></ins>
        </div>
        Option 1
    </label>
</div>

ps : si tu l'écris comme j'viens de le faire ça peut générer des erreurs assure toi du name exact pour avoir une génération correct.

Cordialement.

Ce que je fais c que j'ajoute le 'div' => false et 'input'=> false

<?php echo $this->Form->input('radio-2', array('type' => 'radio', 'checked' => '', 'class' => '','div'=> false,'label'=> false, 'style' => 'position: absolute; opacity: 0;')) ?>

.Le

'inputDefaults'=>array('label'=>false,'div'=>false)

les désactive pour tous les input ? .Et si j'ai bien compris au lieu de créer les deux boutons radio d'un seul coup je dois switcher vers deux inputs de type radio. Je vais essayer cette solution. Merci :)