2011-11-08 53 views
6

我在Yii中使用单选按钮,无论我做什么我都无法获取所选按钮的值以发布。我相信它只是一件简单的事情。我不使用radioButtonList,因为我希望每个按钮都存在于它自己的div中,并且上面有一个图像。Yii单选按钮

这里是认为我的代码...

<?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(); ?>

回答

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)); ?> 

只需添加

'uncheckValue'=>空

在htmlOption阵列

它会运行

+2

人你刚才救了我的一天。由于这个不直观的功能,我被困在一整天*。 – hijarian

+0

介意它也会生成具有相同id的HTML标记的多个输入,这会破坏一些HTML逻辑 –

+1

WTF。我有这个相同的问题...真的吗?认真的,甚至在这里发生了什么?无论如何,谢谢22francis,你是一个救星! – train

1

在CHtml :: activeRadioButtonList的第三个参数(htmlOptions)中有一个名为'template'的选项。你应该看看。