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,
));
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.