我有一个以qID作为主键的数据库表工作表( wsheetid varchar(5),qID varchar(5),answer varchar(50),wsheetid varchar(5))。一个工作表有许多问题。
我想获取wsheetid =1的所有问题,并将它们显示为表单,以便用户可以输入答案。我想用数据库中的answer列检查用户输入的答案。
我怎么才能在一年中做到这一点。
我试过谷歌和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,或者是否有更好的方法来实现此目的。
表名( worksheetResults,worksheetID,question_ID,submitted_ans)
发布于 2011-06-05 10:22:04
我认为你应该有一个工作表模型,一个工作表控制器和一个工作表视图。
以下是控制器部分的框架:
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']
}
}
发布于 2011-06-07 02:03:03
你用Gii做脚手架了吗?这将为您提供模型和CRUD文件,然后您可以自定义外观和功能。如果您的数据模型很好,这将为您节省大量时间,即使您最终重做了表单视图,您仍然可以使用Yii创建和维护模型和控制器类。
https://stackoverflow.com/questions/6242135
复制