ajaxSubmitButton:控制器操作不在Yii中重定向

enf*_*eld 2 php ajax yii

我正在使用ajaxSubmitButton将数据发送到我的控制器.然后,该控制器操作在事务中生成两个插入语句.一切正常.我现在想要的是,一旦交易完成后重定向到一个新视图,但我无法让它工作.

当我点击我的按钮时,交易被处理,但我仍然在同一页面上.我也尝试在按钮内使用"更新"并包装部分页面,但没有内容更新.这不是我最终的目标,因为我想最终呈现一个全新的视图.

这是我的......

视图

 echo CHtml::ajaxSubmitButton('submit',          
        array('/player/mark'), 
        array(
                'type'=>'POST',
                'data' => array(...),
        ));
Run Code Online (Sandbox Code Playgroud)

CONTROLLER

public function actionMark() 
{
        $connection = yii::app()->db;
        $transaction=$connection->beginTransaction();
        try 
        {       
                $connection = yii::app()->db;
                $sql1 = "INSERT ...";
                $command=$connection->createCommand($sql1);
                ...
                $command->execute();


                $connection = yii::app()->db;
                $sql2 = "INSERT ...";
                $command=$connection->createCommand($sql2);
                ...
                $command->execute();

                $transaction->commit();
                $this->redirect(array('manage'));  // THIS IS NOT WORKING
        }
        catch(Exception $e)
        {
                $transaction->rollBack();
                $this->refresh;
        }
}
Run Code Online (Sandbox Code Playgroud)

Ram*_*nov 6

重定向无法正常工作,因为您使用的是ajax.

试试这段代码:

echo CHtml::ajaxSubmitButton('submit',          
        array('/player/mark'), 
        array(
                'type'=>'POST',
                'data' => array(...),
                'success' => 'js:function(){window.location="your_url"}', 
        ));
Run Code Online (Sandbox Code Playgroud)

将*your_url*替换为您想要重定向到的网址