2013-01-10 156 views
0

我有一个模型(带有2个字段名称(pk)和文本的表格)。我需要以这些形式显示数据并从页面更新它。 我能够使用这种如何在单个页面中使用多个表单

<?php echo $this->renderPartial('_form', array('model'=>$model)); ?> 

但如何显示从表中的内容转换成各个部分,如何更新数据显示形式。

的index.php是这样的:

<p>some & Text</p> 
    <p> 
     <?php echo $this->renderPartial('_form', array('model'=>$model)); ?> 
    </p> 
    <p>Some more Text</p> 
    <p> 
     <?php echo $this->renderPartial('_form', array('model'=>$model)); ?> 
    </p> 
    <p>Little More Text</p> 
    <p> 
     <?php echo $this->renderPartial('_form', array('model'=>$model)); ?>  
    </p> 

我_form.php这个是这样的:

<div class="form"> 

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'settings-form', 
    'enableAjaxValidation'=>false, 
)); ?> 

    <p class="note">Fields with <span class="required">*</span> are required.</p> 

    <?php echo $form->errorSummary($model); ?> 

    <div class="row"> 
     <?php echo $form->labelEx($model,'name'); ?> 
     <?php echo $form->textField($model,'name',array('size'=>60,'maxlength'=>255)); ?> 
     <?php echo $form->error($model,'name'); ?> 
    </div> 

    <div class="row"> 
     <?php echo $form->labelEx($model,'text'); ?> 
     <?php echo $form->textArea($model,'text',array('rows'=>6, 'cols'=>50)); ?> 
     <?php echo $form->error($model,'text'); ?> 
    </div> 

    <div class="row buttons"> 
     <?php echo CHtml::submitButton($model->isNewRecord ? 'Submit' : 'Save'); ?> 
    </div> 

<?php $this->endWidget(); ?> 

</div><!-- form --> 

应该是我的网址为的index.php为了什么,显示从内容(目前我使用的是localhost/webapp/controller ..和它的显示形式3次)

+0

你需要在这里澄清一下自己:你要在3种形式或3个部分与文本之间的形式来显示3个单独记录? – DarkMukke

回答

0

得到它。我已经解决了使用收集表格输入 我能达到什么我正在寻找与 收集表格输入 http://www.yiiframework.com/doc/guide/1.1/en/form.table

感谢所有:)

我的自我我的控制器:

public function actionBatchUpdate() 
    { 
      $item = new Model; 

      $items=Model::model()->findAll(); 





      if(isset($_POST['Model'])) 
      { 

        $valid=true; 
        foreach($items as $i=>$item) 
        { 
          if(isset($_POST['Model'][$i])) 

          $item->attributes=$_POST['Model'][$i]; 
          $valid=$item->validate() && $valid; 
          if($valid)$item->save(); 
        } 


      } 

      // displays the view to collect tabular input 
      $this->render('batchUpdate',array(
          'items'=>$items)); 

    } 

我的视图文件:

我查看文件batchupdate.php是:

<div class="form"> 
<?php echo CHtml::beginForm(); ?> 
<table> 

<?php foreach($items as $i=>$item): ?> 
<tr style=" border-bottom: solid 1px black;"> 
<p><td><?php echo CHtml::activeTextField($item,"[$i]name",$htmlOptions=array('disabled'=>'disabled')); ?></td></p> 
</tr> 


<tr style=" border-bottom: solid 2px black;"> 
<p><td><?php echo CHtml::activeTextArea($item,"[$i]text",$htmlOptions=array ('rows'=>8,'cols'=>60));?></td></p></tr> 

<tr style=" border-bottom: solid 1px black;"> 
<p><td><?php echo CHtml::submitButton('Save');?></td></p></tr> 
<tr> 
<td><hr size="10" width="100%" /></td> 
</tr> 

<?php endforeach; ?> 
</table> 


<?php echo CHtml::endForm(); ?> 
</div><!-- form --> 
2

你可以这样做:

假设你的操作是“更新”,你需要更新id = 1记录, 这样你就可以通过这个ID喜欢update?id=1更新动作,或通过post方法,那么你可以在你update行动得到这个ID,然后取此ID的数据: 假设你通过post获得ID ..

$results = Modelname::model()->findAllByAttributes(array('id'=>$_POST['id']))

那么您可以在您的形式通过这个结果,

<?php echo $this->renderPartial('_form', array('model'=>$model, 'results' => $results)); ?>

然后在_form: 可以更新这样的表格数据:

<?php echo $form->textField($model,'mobile',array('value'=>$results['mobile'])) ; ?>

感谢。

+1

感谢给@decoder和所有的想法。 – Developer

相关问题