PDA

View Full Version : مشکل در ajax



engmmrj
چهارشنبه 27 فروردین 1393, 22:47 عصر
سلام
من میخوام در فرممو بصورت ajaxValidate کنم و بصورت ajax هم ارسال کنم ولی وقتی ajaxSubmitButton میزارم ajaxValidate کار نمیکنه !
view :

<?php
/* @var $this UserController */
/* @var $model User */
/* @var $form CActiveForm */
?>
<meta charset="utf-8">
<div class="form">

<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'user-form',
// Please note: When you enable ajax validation, make sure the corresponding
// controller action is handling ajax validation correctly.
// There is a call to performAjaxValidation() commented in generated controller code.
// See class documentation of CActiveForm for details on this.
'enableAjaxValidation'=>true,

'clientOptions'=>array(
'validateOnSubmit'=>true,
'validateOnChange' => false
),
)); ?>

<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'=>15,'maxlength'=>15)); ?>
<?php echo $form->error($model,'name'); ?>
</div>

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

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

<div class="row buttons">
<?php echo CHtml::ajaxSumitButton('send', $this->createUrl('user/Create') , array('update' => '#div')) ?>
</div>

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

</div><!-- form -->

engmmrj
جمعه 29 فروردین 1393, 12:03 عصر
Helpe me :افسرده:

MMSHFE
شنبه 30 فروردین 1393, 10:36 صبح
چرا validateOnChange رو غیرفعال کردین؟ الآن فرم فقط وقتی سابمیت میشه ولیدیشن اعمال میشه.

engmmrj
شنبه 30 فروردین 1393, 11:41 صبح
میخوام با submit ولیدیت کنه

engmmrj
شنبه 30 فروردین 1393, 11:48 صبح
ajax yii مصیبته !

under22
شنبه 30 فروردین 1393, 11:51 صبح
مصیبت برای یک لحظه شه من خودم شده چند روز سره یه چیزه ساده تو Yii گیر کنم .
به نظره من اگه بخای تو Yii اون چیزی که بخای رو در بیاری خیلی باید کاستومش کنی

MMSHFE
شنبه 30 فروردین 1393, 12:21 عصر
عذر میخوام ولی فکر میکنم مصیبت بخاطر اینه که شما توی فاروم خود Yii سؤالتون رو نمیپرسین یا خوب جستجو نمیکنید. هر فریمورکی برای انجام یک کار سفارشی، نیاز به Customization داره. طراحان فریمورک که نمیدونستن شما چه چیزی میخواین. الآن هم درمورد مشکلتون باید بگم که کلاً دیدگاهتون اشتباهه. ajaxValidation برای وقتی هست که فرم سابمیت نمیشه و با حرکت بین کنترلها میخواین validate کنید. وقتی فرم سابمیت بشه که دیگه اسمش ajaxValidation نیست و فقط خود فرم هست که با ajax داره سابمیت میشه.

engmmrj
شنبه 30 فروردین 1393, 12:25 عصر
عذر میخوام ولی فکر میکنم مصیبت بخاطر اینه که شما توی فاروم خود Yii سؤالتون رو نمیپرسین یا خوب جستجو نمیکنید. هر فریمورکی برای انجام یک کار سفارشی، نیاز به Customization داره. طراحان فریمورک که نمیدونستن شما چه چیزی میخواین. الآن هم درمورد مشکلتون باید بگم که کلاً دیدگاهتون اشتباهه. ajaxValidation برای وقتی هست که فرم سابمیت نمیشه و با حرکت بین کنترلها میخواین validate کنید. وقتی فرم سابمیت بشه که دیگه اسمش ajaxValidation نیست و فقط خود فرم هست که با ajax داره سابمیت میشه.
بنده از ajaxValidation بطور submit استفاده میکردم و مشکلی هم نداشت ولی میخوام فرم را بصورت ajax ارسال کنم مشکل داره !

MMSHFE
شنبه 30 فروردین 1393, 12:51 عصر
دوست عزیز، گویا شما در مفاهیم پایه مشکل دارین و اشکال از Yii نیست. وقتی فرم داره سابمیت میشه، چه با AJAX باشه چه معمولی، سمت سرور فقط میبینه که فرم سابمیت شده و دیگه Validation با AJAX معنا نداره و تنها تفاوت در اینه که با Submitشدن فرم، صفحه Refresh نمیشه (چون با AJAX انجام شده). اون ajaxValidation که شما میخواین انجام بشه، موقعی معنا داره که مثلاً از روی عنصر name به عنصر family توی فرم حرکت کنیم و بلافاصله پشت پرده validation با AJAX انجام بشه و نتیجه رو به مشاهده کنیم.

under22
شنبه 30 فروردین 1393, 13:03 عصر
آقا شهرکی ببخشید میشه بیشتر توضیح بدهید . چون این دوستمون میخان ولیدیت فرم هم کلاینتی باشه و هم ایجکسی و وقتی که نتیجه ولیدیت درست در اومد یه اتفاقی بیفته مثالا یک پیام نشون داده بشه . این کجاش اشکال از مفاهیم هست

MMSHFE
شنبه 30 فروردین 1393, 13:07 عصر
ببینید، اینکه ولیدیت هم کلاینتی باشه هم با AJAX هیچ مشکلی نداره. مشکل اینجاست که وقتی فرم سابمیت میشه دیگه اطلاعات رفته سمت سرور و AJAX و... معنا نداره. نمیدونم منظورم رو متوجه میشین یا نه ولی منظورم اینه که الآن دیگه خود فرم سابمیت شده (ولو با AJAX) و نمیشه دیگه دونه دونه آیتمها رو با AJAX ولیدیت کرد و کلاً ولیدیشن سمت سرور داره انجام میشه و خطاها رو هم اگه بخوایم بگیریم باید با ()model->getErrors$ دریافت کنیم. اینکه ولیدیشن کلاینتی و AJAX رو همزمان داشته باشیم، تا وقتی معنا داره که فرم سابمیت نشده باشه. اینجور ولیدیشنها تا قبل از سابمیت شدن فرم معنا دارن.

engmmrj
یک شنبه 31 فروردین 1393, 20:08 عصر
دوست عزیز، گویا شما در مفاهیم پایه مشکل دارین و اشکال از Yii نیست. وقتی فرم داره سابمیت میشه، چه با AJAX باشه چه معمولی، سمت سرور فقط میبینه که فرم سابمیت شده و دیگه Validation با AJAX معنا نداره و تنها تفاوت در اینه که با Submitشدن فرم، صفحه Refresh نمیشه (چون با AJAX انجام شده). اون ajaxValidation که شما میخواین انجام بشه، موقعی معنا داره که مثلاً از روی عنصر name به عنصر family توی فرم حرکت کنیم و بلافاصله پشت پرده validation با AJAX انجام بشه و نتیجه رو به مشاهده کنیم.

فکر کنم شما مشکل داری یا تا حالا از ajax استفاده نکردید !! دلیل نمیشه هر چی شما میگی درست باشه !!
خیلی از سایت ها دارن از همین روش استفاده می کنن!

engmmrj
یک شنبه 31 فروردین 1393, 20:15 عصر
ببینید، اینکه ولیدیت هم کلاینتی باشه هم با AJAX هیچ مشکلی نداره. مشکل اینجاست که وقتی فرم سابمیت میشه دیگه اطلاعات رفته سمت سرور و AJAX و... معنا نداره. نمیدونم منظورم رو متوجه میشین یا نه ولی منظورم اینه که الآن دیگه خود فرم سابمیت شده (ولو با AJAX) و نمیشه دیگه دونه دونه آیتمها رو با AJAX ولیدیت کرد و کلاً ولیدیشن سمت سرور داره انجام میشه و خطاها رو هم اگه بخوایم بگیریم باید با ()model->getErrors$ دریافت کنیم. اینکه ولیدیشن کلاینتی و AJAX رو همزمان داشته باشیم، تا وقتی معنا داره که فرم سابمیت نشده باشه. اینجور ولیدیشنها تا قبل از سابمیت شدن فرم معنا دارن.
اگر معنا نداره پس چرا Yii همچین قابلیتی قرار داده ؟ میشه توضیح بدید ؟

از این مبحث دو نتیجه میشه گرفتT، یا شما اشتباه میکنید یا برنامه نویسای Yii !

MMSHFE
یک شنبه 31 فروردین 1393, 20:44 عصر
دوست عزیز، چرا مباحث رو قاطی میکنید؟ کی گفته Yii چنین قابلیتی گذاشته؟ Yii دو قابلیت داره: AJAX Validation و AJAX Form Submit که این دو قابلیت در کنار هم قابل استفاده نیست و در هر لحظه فقط یکیش انجام میشه. AJAX Validation باعث میشه وقتی از روی یک عنصر حرکت میکنید، Validation پشت پرده انجام بشه و AJAX Form Submit باعث میشه فرم با روش AJAX ارسال بشه و نتیجه دریافت بشه که در این حالت، Validation به روش معمول انجام میشه و فقط فرم با AJAX سابمیت میشه. نمیدونم چرا موضوع به این سادگی رو متوجه نمیشین.

از این مبحث دو نتیجه میشه گرفتT، یا شما اشتباه میکنید یا برنامه نویسای Yii !
یک نتیجه دیگه هم میشه گرفت: شما دو مفهوم AJAX Validation و AJAX Form Submit رو با هم قاطی کردین.

MMSHFE
یک شنبه 31 فروردین 1393, 20:47 عصر
فکر کنم شما مشکل داری یا تا حالا از ajax استفاده نکردید !! دلیل نمیشه هر چی شما میگی درست باشه !!
خیلی از سایت ها دارن از همین روش استفاده می کنن!
دوست عزیز، مراقب لحن صحبتتون باشین. من خیلی مؤدبانه گفتم توی مفاهیم پایه مشکل دارین و معناش هم اینه که یکسری مفاهیم پایه رو گویا نمیدونید که این مسئله برای شما پیچیده شده. دلیل نمیشه به خودتون اجازه بدین اهانت کنید. شما هم اگه فکر میکنید من اشتباه میکنم، مجبور نیستین این بحث رو ادامه بدین و میتونید توی فاروم خود Yii سؤالتون رو مطرح کنید و پیگیر باشین تا به جواب برسین.

خیلی از سایت ها دارن از همین روش استفاده می کنن!
هیچ سایتی همزمان نمیاد هم فرم رو با AJAX ارسال کنه و هم Validation رو با AJAX انجام بده. وقتی فرم سابمیت شده، ولیدیشن سمت سرور اعمال میشه و دیگه AJAX Validation معنا نداره چون AJAX Validation قبل از سابمیت فرم کاربرد داره (بدون سابمیت شدن فرم، Validationها انجام بشه).
-----
واقعاً نمیدونم اسم این برخوردتون رو چی بگذارم!

engmmrj
یک شنبه 31 فروردین 1393, 21:28 عصر
دوست عزیز، مراقب لحن صحبتتون باشین. من خیلی مؤدبانه گفتم توی مفاهیم پایه مشکل دارین و معناش هم اینه که یکسری مفاهیم پایه رو گویا نمیدونید که این مسئله برای شما پیچیده شده. دلیل نمیشه به خودتون اجازه بدین اهانت کنید. شما هم اگه فکر میکنید من اشتباه میکنم، مجبور نیستین این بحث رو ادامه بدین و میتونید توی فاروم خود Yii سؤالتون رو مطرح کنید و پیگیر باشین تا به جواب برسین.
عذر میخوام

هیچ سایتی همزمان نمیاد هم فرم رو با AJAX ارسال کنه و هم Validation رو با AJAX انجام بده. وقتی فرم سابمیت شده، ولیدیشن سمت سرور اعمال میشه و دیگه AJAX Validation معنا نداره چون AJAX Validation قبل از سابمیت فرم کاربرد داره (بدون سابمیت شدن فرم، Validationها انجام بشه).]
خوب معلومه کسی همچین کاری نمیکنه ، بنده هم نکردم
بنده چون AjaxSubmit با ValidateClient مشکل داره اومدم ajaValidation رو روشن کردم که فرم رو بصورت ajax ارسال کنه ولی بازم مشکله ! هر چی مشکل هست تو yii شما میخوام بگی مشکل از خود شماس که نمیتونی استفاده کنی !

MMSHFE
دوشنبه 01 اردیبهشت 1393, 11:56 صبح
این لینک رو دیدین؟
http://stackoverflow.com/questions/21200980/yii-ajaxsubmitbutton-client-side-validation-issue
یا این یکی:
http://www.yiiframework.com/forum/index.php/topic/37075-form-validation-with-ajaxsubmitbutton

engmmrj
دوشنبه 01 اردیبهشت 1393, 20:14 عصر
این لینک رو دیدین؟
http://stackoverflow.com/questions/21200980/yii-ajaxsubmitbutton-client-side-validation-issue
یا این یکی:
http://www.yiiframework.com/forum/index.php/topic/37075-form-validation-with-ajaxsubmitbutton

باید کلی کد خودمون اضافه کنیم این یعنی yii از ajax بصورت کامل پشتیبانی نمیکنه یعنی yii جز web2 نیست !
آپلود فایل بصورت ajax و ارسال فرم بصورت ajax ، امیدوارم این مشکل در yii2 برطرف بشه !