PDA

نسخه کامل مشاهده نسخه کامل : اعتبار سنجی فرم



milad_66
07-08-2008, 17:08
سلام
یه فرم دارم که می خوام وقتی کاربر دکمه ی سابمیت رو زد اگه فرم غلطی داشت وارد صفحه ی جدید ی که توی action تگ form تعیین شده نره همونجا توی فرم بمونه و خطا ها رو به کاربر نشون بده و اگه کاربر همه ی فرم رو درست پر کرد بره به صفحه جدید . مثلا یه چیزی مثل این زیر:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
تابع validate بنا به شرایطی یا false برمی گردونه یا true. اگه false باشه که کاربر توی همون فرم می مونه و در صورت true بودن میره به صفحه ی تست.
حالا فکر کنید این تابه validate توش آژاکسم باشه و ولیدیت کردن محتوای فرم توسط یه صفحه ی پی اچ پی باشه. تموم چیز هایی که از اون صفحه ی پی اچ پی هم میاد توی تابعی مثلا به اسم responseAjax تحلیلی میشه که این تابع این موقع فراخوانی میشه

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا مشکل کجاست؟ اینجاست که من یه متغیر گلوبال مثلا به اسمه error تعریف کردم بعد میگم توی تابع responseAjax تحت شرایطی مقدار این error عوض شه و بیرون responseAjax اون مقدار تغییر یافته رو بگیرم
ولی هی چی تلاش می کنم اینجوری نمیشه .مقدار error توی responseAjax تغییر می کنه ولی به محضه اینکه از اون میام بیرون مقدار error برمی گرده به همون مقدار قبل از فراخوانی responseAjax.
چرا اینجوری میشه؟

peyman1987
08-08-2008, 12:54
اولا که دوست عزیز چرا از ایجکس برای خطاگیری استفاده کردین؟؟؟ مگه مقداری رو باید چک میکردین که نیاز به کوئری دیتابیس داشته یا چیز دیگه؟؟؟

دوما متوجه نمیشم. یعنی شما یه متغیر با جاوااسکریپت تعریف کردین. این مقدار رو با Php تغییر میدین ولی تغییر نمیکنه؟؟؟ خوب اینکه اصلا غیرمنطقیه و نمیشه که. بهتر توضیح بدین راحتتر میشه کمک کرد.

milad_66
08-08-2008, 15:18
از از آجاکس استفاده کردم نیاز به ولیدت کردن با یه زبان سرورساید داشتم. چون می خوام به دیتابی وصل شم.
نه اون متغییر جاوا اسکریپت توی همون کدهای جاوا اسکریپت می خواد تغییر کنه. یه نگاه به کد پایینی بکنید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
خروجی 1 و 2 و 2 هستش. یه متغییر گلوبال تعریف کردم محتواش رو توی یه تابع عوض کردم.
حالا همین کار رو دقیقا می خوام توی کدهای خودم انجام بدم. منتها به جای اینکه توی تابع t تغییر کن توی تابهپع responseAjax که بالا توضیح دادم تغییر می کنه. ولی نتیجهاش مثل مثال بالایی نمیشه

milad_66
09-08-2008, 13:19
پس چی شد؟
کسی کمک نمی کنه؟