php保留在当前页面,php – 在YII Framework中提交按钮后保持当前页面

与@R_701_301@失败后查看错误消息时相同.您可以将保存的模型传递给表单,而不是进行重定向.

public function actionIndex(){

$model = new Model();

if (isset($_POST[get_class($model)]){

$model->setAttributes($_POST[get_class($model)]);

if ($model->save()){

//do nothing

//usually people do a redirection here `$this->redirect('index');`

//or you can save a flash message

Yii::app()->user->setFlash('message','Successfully save form');

} else {

Yii::app()->user->setFlash('message','Failed to save form');

}

}

//this will pass the model posted by the form to the view,//regardless whether the save is successful or not.

$this->render('index',array('model' => $model));

}

在索引视图中,您可以执行类似的操作.

<?PHP if (Yii::app()->user->hasFlash('message')):?>

<?PHP echo Yii::app()->user->getFlash('message');?>

缺点是,当您不小心点击“刷新”按钮(F5)时,它会尝试再次发布表单.

或者您可以使用setFlash使用用户会话保存它.

public function actionUpload()

{

$model=new UploadModel();

$basemodel=new BaseContactList();

$importmodel=new ImportedFilesModel();

$importmodel->name =$basemodel->name;

$importmodel->import_date = $now->format('Y-m-d H:i:s');

$importmodel->server_path = $temp;

$importmodel->file_name = $name;

$importmodel->crm_base_contact_id = $crm_base_contact_id;

if ($importmodel->save())

echo "Import saved";

else

echo "Import Not Saved";

unset($_POST['BaseContactList']);

//here we go

Yii::app()->user->setFlash('form',serialize($basemodel));

//

$this->redirect(Yii::app()->request->urlReferrer);

}

在上一个表单中,您将加载会话中的值.

public function actionForm(){

if (Yii::app()->user->hasFlash('form')){

$basemodel = unserialize(Yii::app()->user->getFlash('form');

} else {

$basemodel = new BaseContactList();

}

$this->render('form',array('basemodel' => $basemodel));

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值