以下に私のコードがあります:(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: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)
、データ フォームが送信されたことを示します (ポスト メソッドで)。ただし、その後 in でレンダリングview.php
され、フォームが入力されているにもかかわらず、サーバーに送信されたフォームにデータがないことが示されます。?partialrender()
actionUpdate
print_r($_REQUEST)