以下是我的代码:(Yii 框架)
查看表格:view.php
<div class="form">
<?php
$form = $this->beginWidget('CActiveForm',array(
'id'=>'user-profile',
'action' => 'index.php?r=upanel/user/update',
'method' => 'post',
));
?>
<?php $form->errorSummary($model) ?>
. . .
. . .
. . .
. . .
. . .
<div class="row buttons">
<?php
$url = Yii::app()->createUrl('upanel/user/update');
echo CHtml::ajaxSubmitButton('Update Profile',$url,array(
'type'=>'POST',
'data'=> "js:$('#user-profile').serialize()",//var data = $('#user-form').serialize();
'datatype'=>'html',
'success'=>'callback',
'error'=>'error',
));
?>
</div>
<?php $this->endWidget() ?>
</div> <!-- End CActiveForm-->
<p><?php echo Yii::app()->user->getFlash('success') ?></p>
<script>
function callback(data,status){
if (status=='success')
$('#user-profile').html(data);
}
function error(jqXHR, textStatus , errorThrown){
console.log(jqXHR);
$('#error').html('callback error');
}
</script>
控制器中的动作更新:actionUpdate()
public function actionUpdate()
{
$model=$this->loadModel(Yii::app()->user->id);
$model->scenario = 'updateProfile';
if(isset($_POST['User'])){
$model->attributes=$_POST['User'];
if($model->validate()){
if ($model->save()){
Yii::app()->user->setFlash('success','Successfully Updated');
$this->renderPartial('view',array('model'=>$model));
}
}
}
}
问题是:第一次发送表单时,print_r($_REQUEST)
显示已发送的数据表单(在 post 方法中),但在使用inview.php
渲染之后,尽管表单已填写,但显示发送到服务器的表单中没有数据。?partialrender()
actionUpdate
print_r($_REQUEST)