【问题标题】:Fetch multiple rows and display as form using yii使用 yii 获取多行并显示为表单
【发布时间】:2011-06-05 09:50:59
【问题描述】:

我有一个以 qID 作为主键的数据库表工作表(qID varchar(5)、answer varchar(50)、wsheetid varchar(5))。一张工作表有很多问题。

我想获取 wsheetid =1 的所有问题并将它们显示为表单,以便用户可以输入答案。 我想用数据库中的答案列检查用户输入的ans。

我如何在 Yii 中做到这一点。

尝试了google和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>

在控制器中,我需要插入从上述表单中获取的数据并插入到不同的表(工作表结果)中。我需要将数据放入数组并使用 Yii DAO 还是有更好的方法来做到这一点。

table worksheetResults(用户名、worksheetID、question_ID、submitted_ans)

【问题讨论】:

    标签: forms yii


    【解决方案1】:

    我认为你应该有一个 Worksheet 模型、一个 Worksheet 控制器和一个 Worksheet 视图。

    这是控制器部分的骨架:

    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']
      }
    }
    

    【讨论】:

    • 感谢您的回答。你也可以看看我的更新问题。谢谢
    【解决方案2】:

    您是否使用 Gii 来创建脚手架?这将为您提供模型和 CRUD 文件,然后您可以自定义外观和功能。如果你的数据模型很好,这会为你节省很多时间,即使你最终重做表单视图,你仍然可以使用 Yii 来创建和维护模型和控制器类。

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

    【讨论】:

    • 是的,我使用过 gii,但问题是我必须获取大约 10 条记录并显示为表单并将提交的表单保存到另一个表中。在我问题的上述更新部分中,我有我的表单视图,我在转换为数组后获取数据
    猜你喜欢
    • 2020-08-08
    • 1970-01-01
    • 2015-04-16
    • 2014-04-09
    • 1970-01-01
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    相关资源
    最近更新 更多