Получить несколько строк и отобразить как форму, используя yii - PullRequest
0 голосов
/ 05 июня 2011

У меня есть таблица таблицы базы данных (qID varchar (5), answer varchar (50), wsheetid varchar (5)) с qID в качестве первичного ключа.На одном листе есть много вопросов.

Я хочу получить все вопросы, где wsheetid = 1, и отобразить их в виде формы, чтобы пользователь мог ввести ответы.И я хочу проверить введенный пользователем ответ с колонкой ответа в базе данных.

Как я могу это сделать в Yii.

Попробовал гугл и руководство по yii, не смог найти никакого решения.Любое предложение будет полезно.

Обновление:

У меня есть представление ниже, где я необходим, чтобы получить атрибуты в массив и отобразить форму.Есть лучший способ сделать это?и для activeTextArea, так как модель имеет данные, текстовая область содержит данные из базы данных, но мне нужна пустая текстовая область.

<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'wdetails-form',
    'enableAjaxValidation'=>false,
)); ?>
<?php echo CHtml::beginForm(); ?>
<?php foreach($questions as $i=>$questions): ?>
<?php $array = $questions->getAttributes(); 
 echo CHtml::activeLabel($questions,"[$i]question",array('label'=>"$array[question]"));
 echo CHtml::activeTextArea($questions,"[$i]answer",array('id'=>"$array[question_ID]"));
 endforeach; 
?>
</br> 
<?php echo CHtml::submitButton('Submit'); ?>
<?php echo CHtml::endForm(); ?>
<?php $this->endWidget(); ?>
</div>

и в контроллере мне нужно вставить данные, полученные из вышеприведенной формы, и вставить в другую таблицу (worksheetResults).Нужно ли мне получать данные в массив и использовать Yii DAO или есть какой-либо лучший способ сделать это.

Ответы [ 2 ]

1 голос
/ 05 июня 2011

Я думаю, у вас должны быть модель рабочего листа, контроллер рабочего листа и представление рабочего листа.

Вот скелет для части контроллера:

class WorksheetController extends CController
{
  public function actionQuestions()
  {
    $criteria = new CDbCriteria;
    $criteria->addCondition('(wsheetid = :id)');
    $criteria->params[':id'] = '1';
    $questions = Worksheet::model()->findAll($criteria);
    $this->render('questions_form', array('questions'=>$questions));
  }
  public function actionAnswers()
  {
    //check the contents of $_POST['Worksheet']
  }
}
0 голосов
/ 07 июня 2011

Вы использовали Gii для создания строительных лесов? Это даст вам модель и файлы CRUD, и вы сможете настроить внешний вид и функциональность. Если ваша модель данных хороша, это сэкономит вам много времени, даже если вы закончите переделывать представление формы, вы все равно можете использовать Yii для создания и поддержки модели и классов контроллера.

См .: http://www.yiiframework.com/doc/guide/1.1/en/topics.gii

...