2011-11-08 23 views
6

Estoy usando botones de radio en Yii y no importa lo que haga, no puedo obtener el valor del botón seleccionado para publicar. Estoy seguro de que es algo simple. NO estoy usando radioButtonList porque quiero que cada botón exista en su propio div con una imagen encima.Botones de radio Yii

Aquí está mi código de la vista ...

<?php $this->pageTitle=Yii::app()->name; ?> 

<h1>Welcome to <i><?php echo CHtml::encode(Yii::app()->name); ?></i></h1> 

<div class="form"> 
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'lead_form', 
'enableAjaxValidation'=>false, 
)); ?> 
<h3>Choose Your Prize!</h3> 

<div id="prizes"> 
<div class="prize"> 
<h3>Paypal</h3> 
<?php echo $form->radioButton($model,'user_prize',array('value'=>1)); ?> 
</div> 
<div class="prize"> 
<h3>Check</h3> 
<?php echo $form->radioButton($model,'user_prize',array('value'=>2)); ?> 
</div> 
<div class="prize"> 
<h3>AlertPay</h3> 
<?php echo $form->radioButton($model,'user_prize',array('value'=>3)); ?> 
</div> 
<div class="prize"> 
<h3>Iphone 4</h3> 
<?php echo $form->radioButton($model,'user_prize',array('value'=>4)); ?> 
</div> 
<div class="prize"> 
<h3>Ipad 2</h3> 
<?php echo $form->radioButton($model,'user_prize',array('value'=>5)); ?> 
</div> 
<div class="prize"> 
<h3>Custom</h3> 
<?php echo $form->radioButton($model,'user_prize',array('value'=>6)); ?> 
</div> 
</div> 
<h3>Enter Your Email</h3> 
<div id="mainemail"> 
<div class="row"> 
    <?php echo $form->labelEx($model,'user_email'); ?> 
    <?php echo $form->textField($model,'user_emhttp://stackoverflow.com/editing- helpail'); ?> 
    <?php echo $form->error($model,'user_email'); ?> 
</div> 

<div> 
    <?php echo $form->errorSummary($model); ?> 
</div> 

<div class="row buttons"> 
    <?php echo CHtml::submitButton('Submit'); ?> 
</div> 

endWidget(); ?>

Respuesta

12
<?php echo $form->radioButton($model,'user_prize',array('value'=>1,'uncheckValue'=>null)); ?> 
<?php echo $form->radioButton($model,'user_prize',array('value'=>2,'uncheckValue'=>null)); ?> 
<?php echo $form->radioButton($model,'user_prize',array('value'=>3,'uncheckValue'=>null)); ?> 
<?php echo $form->radioButton($model,'user_prize',array('value'=>4,'uncheckValue'=>null)); ?> 
<?php echo $form->radioButton($model,'user_prize',array('value'=>5,'uncheckValue'=>null)); ?> 

sólo tiene que añadir

'uncheckValue' => nula

en orden htmlOption

que va a funcionar ..

+2

hombre que acaba de guardar mi día. Estuve atascado durante todo * día * gracias a esta característica poco intuitiva. – hijarian

+0

, tenga en cuenta que también generará varias entradas con la misma etiqueta HTML ID, lo que romperá la lógica HTML –

+1

WTF. Tuve el mismo problema ... ¿yii? en serio, ¿qué está pasando aquí? de todos modos, gracias 22francis, eres un salvavidas! – train

1

En tercer parámetro de chtml :: activeRadioButtonList (htmlOptions) hay una opción llamada 'plantilla'. Deberías echar un vistazo.

Cuestiones relacionadas