[right]با سلام.
یک فرم برای ثبت نام دارم که enableAjaxValidation رو فعال کردم.
ولی یک مشکلی که هستش وقتی فرم رو کامل پر می کنم و می فرستم مشکلی پیش نمی یاد, ولی اطلاعاتی رو وارد نمی کنم و می فرستم خطا روی میده .
البته من سمت سرور اطلاعات رو با Json می فرستم مثلا می خوام بدونم با موفقیت ذخیره شد یا نه اگر درست بود فرم رو Hide می کنم و پیفام درست رو نشون می دم وگر نه پیفام خطا رو نشون می دم.[/right]
[right]من می خوام اعتبارسنجی به صورت Ajax باشه از سمت سرور و وقتی عملیات با موفقیت بود پیغامی رو بفرستم به منظور ذخیره ویا خطا[/right]
echo CHtml::ajaxSubmitButton('عضویت','',array(
'success' =>
'js: function(result) {
if(result != "") {
//if (result.indexOf("{") != 0) {
if (result.error == false)
{
$("#divmsg").removeClass().addClass("alert alert-success");
$("#register").slideUp(700);
}
else
{
$("#divmsg").removeClass().addClass("alert alert-error");
}
$("#divmsg").html(result.msg);
//}
}
}',
'error' =>
'js: function() {
$("#divmsg").removeClass().addClass("alert alert-error");
$("#divmsg").html("خطا در فرستادن اطلاعات");
}',
'beforeSend' =>
'js: function(){
$("#loading").addClass("loading");}',
'complete' =>
'js: function(){
$("#loading").removeClass("loading");}',
'dataType' => 'json',
),
array('class' => 'btn btn-primary'));
public function actionRegister() {
$model = new User('register');
if (isset($_POST['ajax']) && $_POST['ajax'] === 'register') {
echo CActiveForm::validate($model);
Yii::app()->end();
}
if (isset($_POST['User'])) {
$model->attributes = $_POST['User'];
if (Yii::app()->request->isAjaxRequest) {
header('Content-Type: application/json; charset="UTF-8"');
sleep(5);
if ($model->validate()) {
echo json_encode(array(
'msg' => 'Congratulations!',
'error' => false
));
Yii::app()->end();
}
else
{
echo json_encode(array(
'msg' => $model->getErrors(),
'error' => true
));
Yii::app()->end();
}
}
else
$this->redirect(app()->homeUrl);
}
$this->render('register', array('model' => $model));
}
'enableAjaxValidation' => true,
'clientOptions' => array(
'validateOnSubmit' => true,
//'validateOnChange' => true,
),