Yii: радио-кнопка дает значение 0
Я использую переключатели, чтобы выбрать правильный вариант из числа возможных. На данный момент у меня есть четыре варианта формулировки вопроса, но возможный вариант ответа может увеличиться. Проблема, с которой я сталкиваюсь, заключается в том, что следующий код работает только для последней опции, иначе он дает значение 0 при отправке формы. Также, пожалуйста, предложите, как я могу использовать radioButtonList со следующим кодом, так как я хочу отображать переключатели в разных DIV. Пожалуйста, проверьте следующий код и совет. Заранее спасибо
<div class="form-group" id="statement_div">
<?php echo $form->labelEx($model,'statement', array('class' => 'col-md-3 control-label', 'id'=>'question_label')); ?>
<div class="col-md-9">
<?php echo $form->textArea($model,'statement',array('rows'=>3, 'cols'=>50, 'class'=> 'form-control')); ?>
<?php echo $form->error($model,'statement'); ?>
</div>
<div class="clearfix"></div>
</div>
<div class="form-group" id="option1_div">
<?php echo $form->labelEx($model,'option_1', array('class' => 'col-md-3 control-label', 'id'=>'question_label')); ?>
<div class="col-md-9">
<?php echo $form->textArea($model,'option_1',array('rows'=>3, 'cols'=>50, 'class'=> 'form-control', 'readonly'=>$readonly)); ?>
<?php echo $form->error($model,'option_1'); ?>
</div>
<?php echo $form->radioButton($model,'correct_option',array('value'=>'1')) . ''; ?>
<div class="clearfix"></div>
</div>
<div class="form-group" id="option2_div">
<?php echo $form->labelEx($model,'option_2', array('class' => 'col-md-3 control-label', 'id'=>'question_label')); ?>
<div class="col-md-9">
<?php echo $form->textArea($model,'option_2',array('rows'=>3, 'cols'=>50, 'class'=> 'form-control','readonly'=>$readonly)); ?>
<?php echo $form->error($model,'option_2'); ?>
</div>
<?php echo $form->radioButton($model,'correct_option',array('value'=>'2')) . ''; ?>
<div class="clearfix"></div>
</div>
<div class="form-group" id="option3_div">
<?php echo $form->labelEx($model,'option_3', array('class' => 'col-md-3 control-label', 'id'=>'question_label')); ?>
<div class="col-md-9">
<?php echo $form->textArea($model,'option_3',array('rows'=>3, 'cols'=>50, 'class'=> 'form-control', 'readonly'=>$readonly)); ?>
<?php echo $form->error($model,'option_3'); ?>
</div>
<?php echo $form->radioButton($model,'correct_option',array('value'=>'3')) . ''; ?>
<div class="clearfix"></div>
</div>
<div class="form-group" id="option4_div">
<?php echo $form->labelEx($model,'option_4', array('class' => 'col-md-3 control-label', 'id'=>'question_label')); ?>
<div class="col-md-9">
<?php echo $form->textArea($model,'option_4',array('rows'=>3, 'cols'=>50, 'class'=> 'form-control','readonly'=>$readonly)); ?>
<?php echo $form->error($model,'option_4'); ?>
</div>
<?php echo $form->radioButton($model,'correct_option',array('value'=>'4')) . ''; ?>
<div class="clearfix"></div>
</div>
2 ответа
Если вы не используете radioButtonList, вам придется установить каждый radioButton's uncheckValue
в null
,
http://www.yiiframework.com/wiki/315/using-multiple-radio-button/
<div class="form-group" id="statement_div">
<?php echo $form->labelEx($model,'statement', array('class' => 'col-md-3 control-label', 'id'=>'question_label')); ?>
<div class="col-md-9">
<?php echo $form->textArea($model,'statement',array('rows'=>3, 'cols'=>50, 'class'=> 'form-control')); ?>
<?php echo $form->error($model,'statement'); ?>
</div>
<div class="clearfix"></div>
</div>
<div class="form-group" id="option1_div">
<?php echo $form->labelEx($model,'option_1', array('class' => 'col-md-3 control-label', 'id'=>'question_label')); ?>
<div class="col-md-9">
<?php echo $form->textArea($model,'option_1',array('rows'=>3, 'cols'=>50, 'class'=> 'form-control', 'readonly'=>$readonly)); ?>
<?php echo $form->error($model,'option_1'); ?>
</div>
<?php echo $form->radioButton($model,'correct_option',array('value'=>'1','uncheckValue' => null)); ?>
<div class="clearfix"></div>
</div>
<div class="form-group" id="option2_div">
<?php echo $form->labelEx($model,'option_2', array('class' => 'col-md-3 control-label', 'id'=>'question_label')); ?>
<div class="col-md-9">
<?php echo $form->textArea($model,'option_2',array('rows'=>3, 'cols'=>50, 'class'=> 'form-control','readonly'=>$readonly)); ?>
<?php echo $form->error($model,'option_2'); ?>
</div>
<?php echo $form->radioButton($model,'correct_option',array('value'=>'2','uncheckValue' => null))) . ''; ?>
<div class="clearfix"></div>
</div>
<div class="form-group" id="option3_div">
<?php echo $form->labelEx($model,'option_3', array('class' => 'col-md-3 control-label', 'id'=>'question_label')); ?>
<div class="col-md-9">
<?php echo $form->textArea($model,'option_3',array('rows'=>3, 'cols'=>50, 'class'=> 'form-control', 'readonly'=>$readonly)); ?>
<?php echo $form->error($model,'option_3'); ?>
</div>
<?php echo $form->radioButton($model,'correct_option',array('value'=>'3','uncheckValue' => null))) . ''; ?>
<div class="clearfix"></div>
</div>
<div class="form-group" id="option4_div">
<?php echo $form->labelEx($model,'option_4', array('class' => 'col-md-3 control-label', 'id'=>'question_label')); ?>
<div class="col-md-9">
<?php echo $form->textArea($model,'option_4',array('rows'=>3, 'cols'=>50, 'class'=> 'form-control','readonly'=>$readonly)); ?>
<?php echo $form->error($model,'option_4'); ?>
</div>
<?php echo $form->radioButton($model,'correct_option',array('value'=>'4','uncheckValue' => null))) . ''; ?>
<div class="clearfix"></div>
</div>
Это потому что activeRadioButton
генерирует непобедимое поле ввода с тем же именем для каждого флажка / радио (поэтому предыдущие значения перезаписываются этим полем в данных формы). Применять uncheckValue => null
удалить это поле. Просто имейте в виду, что без этого поля, если использовать, не выбирайте радио / флажок, чем в данных формы не будет ключа correct_option
,
<?php
echo $form->radioButton(
$model,
'correct_option',
array(
'value' => '4',
'uncheckValue' => null,
)
);
?>