我有一个模型(包含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 :(得分: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 :(得分: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 -->