PDA

View Full Version : ایجکس در yii



beh3000
شنبه 12 مهر 1393, 17:16 عصر
سوال دوم من اینه که میشه از فرم های خود yii استفاده کرد و برای فرم جاوا اسکریپت بنویسیم و بصورت ایجکس داده ها رو ارسال کنیم ؟ در این صورت csrf رو خودش بصورت اتوماتیک چک میکنه ؟

kazemimorteza
یک شنبه 13 مهر 1393, 23:03 عصر
خودش به صورت ایجکس فرم را میفرسته.میتونی تو رویدادی مورد نظرت جاوا اسکریپت هم بنویسی.
در مورد اسال یک فرم با ایجکس:

form:



<div class="form" style="">

<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'poll-form',
'enableAjaxValidation'=>true,
)); ?>

</div>

<div class="row buttons">
<?php echo CHtml::ajaxSubmitButton("ارسال",array('site/poll'),array("beforeSend"=>"function(){jQuery('#loader').css({'visibility':'vi sible'});}",
"success"=>"function(data){jQuery('#content').html(data);jQuer y('#loader').css({'visibility':'hidden'});}",'style'=>'')); ?>
</div>

<div class="row">
<img src="<?php echo Yii::app()->request->baseUrl; ?>/images/loader.gif" id="loader" style="visibility: hidden;" id="loader"/>
</div>


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

</div><!-- form -->
<div id="content" class="clientBookingStp1" style="background-color:#979797;color: #009;text-align: center; ">
</div>



controller:



public function actionPoll(){
$this->layout="//layouts/column3";
$model=new poll;

// Uncomment the following line if AJAX validation is needed
$this->performAjaxValidationPoll($model);

if(isset($_POST['poll']))
{

$model->attributes=Yii::app()->input->stripClean( $_POST['poll']);
//$model->date=date("g:i:s", time())."|".$this->return_JalaliDate();
if($model->validate()){
if($model->save())
{
echo "پیام شما ثبت شد";

// echo"<br/>". $this->return_JalaliDate();
}
else{
echo"پیام شما ثبت نشد";
}
return;
}
echo"لطفا فیلد های مربوطه را با مقدار مناسب پر نمایید.";
return;
}

$this->render('poll',array(
'model'=>$model,
));

}