PDA

View Full Version : ارسال فرم از طریق grid view



png_92
دوشنبه 22 شهریور 1395, 08:33 صبح
سلام
من میخوام تو گرید ویو ی فرم سوال جواب درست کنم مثل این :142517
برای درست کردن اون ۳ تا دکمه باید کوئری بزنم و گزینه های مختص هرسوالو از db فچ کنم ولی نمیدونم باید اینکارو کجا انجام بدم.
این کدی که من زدم:



<?php Pjax::begin(); ?>
<?php
$form = ActiveForm::begin([
'id' => 'q',
]);
?>
<?=
GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'question',
[
'label' => 'Options',
'value' => function ($dataProvider, $index, $widget) {
$op = ArrayHelper::map(Option::find([['id', 'option']])
->joinWith(['question as q'])
->where(['q.id' => $dataProvider->id])
->asArray()->all(), 'q.option_id', 'option');
return $form->field($model, 'option_id')
->radioList($op, array('class' => 'i-checks', 'form' => 'q'));
},
],
['class' => 'yii\grid\ActionColumn'],
],
]);
?>
<div class="form-group">
<?= Html::submitButton('Save', ['class' => 'btn-success']) ?>
</div>
<?php ActiveForm::end(); ?>
<?php Pjax::end(); ?>


آیا این روش کلا درسته؟ این خطا برای من الان وجود داره :
Undefined variable: form

آیا درسته که من از 'value' برای ست کردن این کوئری استفاده کردم. من اینجا از گرید ویو استفاده کردم. شما چه پیشنهادی دارید برای ساخت چنین فرمی؟