رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
عدم نمایش پیام Flash بعد از درخواست AJAX
#1
سلام.

من میخوام فرم ثبت نام رو با استفاده از ajax بنویسم . فرم رو نوشتم و به درستی در دیتابیس ثبت میشه . اما موقع استفاده از flash message پیامی در view نمایش داده نمیشه.

کد مربوط به view:

<div class="form">

<?php $form=$this->beginWidget('CActiveForm', array(
       'id'=>'user-form',
       'clientOptions'=>array(
           'validateOnSubmit'=>true,

       ),
)); ?>

       <p class="note">Fields with <span class="required">*</span> are required.</p>

       <?php echo $form->errorSummary($model); ?>

       <div class="row">
               <?php echo $form->labelEx($model,'name'); ?>
               <?php echo $form->textField($model,'name',array('size'=>60,'maxlength'=>64)); ?>
               <?php echo $form->error($model,'name'); ?>
       </div>

       <div class="row">
               <?php echo $form->labelEx($model,'url'); ?>
               <?php echo $form->textField($model,'url'); ?>
               <?php echo $form->error($model,'url'); ?>
       </div>

   

       <div class="row buttons">
              <?php echo CHtml::ajaxSubmitButton(
     'Save',
     Yii::app()->createUrl('site/ajax'),
     array(
          'type'=>'POST',
   
           )
   ); 
?>
       </div>

<?php $this->endWidget(); ?>

</div>


<div id="test"></div>
<?php
    foreach(Yii::app()->user->getFlashes() as $key=> $message) {
        echo '<div class="alert alert-'.$key.'">' . $message . "</div>n";
    }
    
    ?>



کد controller:

        public function  actionAjax(){
            $model=new Images;  
           if(isset($_POST['Images'])){
               
               $model->attributes=$_POST['Images'];
               if($model->save()){
                  Yii::app()->user->setFlash('success', "با موفقیت ثبت شد");   
               }
         
           }
      $this->render('ajax',  compact('model'));

       }
پاسخ
تشکر شده توسط:
#2
سلام
برای نمایش flash باید ریدایرکت انجام بشه و تو ajax ریدایرکت نداریم.
برای نمایش پیغام یه مقدار رو داخل متغیر به عنوان پارامتر موقع رندر بفرست و تو صفحه هم بررسی کن اگه مقدارش درست باشه نمایش بده.

میتونی از اکستنشن زیر هم استفاده کنی، من تست نکردم ولی ظاهرا این مشکل رو نداره + امکانات بیشتری هم داره:
http://www.yiiframework.com/extension/userflash
پاسخ
تشکر شده توسط: cloner




کاربران در حال بازدید این موضوع: 2 مهمان