还有就是我在下面的代码:(Yii框架)发送Ajax的形式,几个时间
查看形式: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在控制器: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)
显示已发送的数据表单(在后处理方法中),但在此之后view.php
用partialrender()
在actionUpdate
,print_r($_REQUEST)
表示尽管表单已填充,但发送到服务器的表单中没有数据。 ?
我这样做,但没有效果。我正在尝试调试程序,但会等待指导的朋友。 – msoa 2013-03-12 08:10:09