View Full Version : کار نکردن if در جی کوئری ajax
sasanamiri
پنج شنبه 28 مرداد 1395, 00:21 صبح
سلام دوستان
یکی دو روزه که دارم با این قضیه سر و کله میزنم و خیلی هم سرچ کردم ولی به نتیجه نرسیدم این شد که گفتم مزاحم شما بشم
خب مشکل کجاست مشکل اینجاست که شرطی که تو قسمت success جی کوئری اجکس نوشتم به درستی کار نمی کنه شرط اینه که وقتی مقدار بازگشتی از درخواست مثلا با ok برابر بود کاربر رو به صفحه اصلی سایت هدایت کنه وقتی از یک علامت مساوی استفاده می کنم هر مقداری بر می گرده شرط اجرا میشه و وقتی هم از دو یا سه علامت مساوی استفاده می کنم هم شرط اجرا نمی شه حتی در صورت بازگشت مقدار درست من که توش موندم
کد رو میزارم ببینید مشکل از کجاست یه راهنمایی کنید البته اینم بگم که خود اجکس به خوبی کار می کنه ممنون
$("#btnlogin").click(function (e)
{
var postData = $("#ajaxform").serialize();
var formURL = $("#ajaxform").attr("action");
$.ajax(
{
url: formURL,
type: "POST",
data: postData,
success: function (data, textStatus, jqXHR)
{
// $('#message').html(data);
if (data == "ok") {
location = 'index.php?route=home';
}
}
});
Moien Tajik
پنج شنبه 28 مرداد 1395, 02:17 صبح
با FireBug کدتون رو Debug کنید ببینید Data چه مقداری رو برمیگردونه اگر درست باشه .
sasanamiri
پنج شنبه 28 مرداد 1395, 02:29 صبح
سلام
نه تو فایر فاکس هم جواب نداد مشکل از ایجکس نیست چون تو یه alert که دیتای بازگشتی رو نشون میده و مشکلی از نظر این قضیه نداره ولی نمی دونم چرا شرط عمل نمی کنه
alireza_s_84
پنج شنبه 28 مرداد 1395, 02:42 صبح
سلام
نه تو فایر فاکس هم جواب نداد مشکل از ایجکس نیست چون تو یه alert که دیتای بازگشتی رو نشون میده و مشکلی از نظر این قضیه نداره ولی نمی دونم چرا شرط عمل نمی کنه
دستور زیر رو واد کنید ببینید توی کنسول نتیجه باید true باشه.
console.log(data=="ok");
اگر true بود کدتون رو بصورت زیر تغییر بدین:
window.location.assign("index.php?route=home");
البته بهتره بجای آدرس دهی نسبی از آدرس دهی مطلق استفاده کنید.
omid nasri
پنج شنبه 28 مرداد 1395, 09:41 صبح
پیشنهاد میکنم لینک زیر رو مطاله فرمایید یقینا به جواب و مشکلات که احتمال داره در آینده با آن روبرو شوید حل خواهد شد:
http://www.dotnettips.info/search?term=firebug
sasanamiri
پنج شنبه 28 مرداد 1395, 12:20 عصر
مشکل اجرا نشدن کد های داخل شرط نیست بلکه مشکل true نشدن شرط هستش چون کد داخل شرط بیرون از اون کار میکنه ولی داخل ظشرط نه
alireza_s_84
پنج شنبه 28 مرداد 1395, 14:55 عصر
مشکل اجرا نشدن کد های داخل شرط نیست بلکه مشکل true نشدن شرط هستش چون کد داخل شرط بیرون از اون کار میکنه ولی داخل ظشرط نه
با استفاده از console.log(data) چک کنید ببیند از سرور چی برمیگرده مشخصه دیگه
sasanamiri
پنج شنبه 28 مرداد 1395, 18:50 عصر
با استفاده از console.log(data) چک کنید ببیند از سرور چی برمیگرده مشخصه دیگه
از سرور پاسخ درست بر می گرده چون من data رو داخل یه تگ نمایش می دم و کاملا نشون میده که چی برمیگرده ولی این شرط لامصب کار نمی کنه دیگه دیونه ام کرده
alireza_s_84
پنج شنبه 28 مرداد 1395, 19:56 عصر
برای این گفتم تو کنسول پرینت کنید چون اگه فاصله یا کارکتر اضافی داشته باشه شما اونو Ok میبینی ولی شرط از من و شما دقیقتره با پرینت تو کنسول میتونید همشو دقیق مشاهده کنید. ضمنا حساسیت به حروف کوچیک و بزرگ رو فراموش نکنید
sasanamiri
پنج شنبه 28 مرداد 1395, 23:17 عصر
بچه ها میشه یکی روش استفاده از کنسول رو بهم یاد بده چون راتش رو بخواید تا حالا ازش استفاده نکردم
SCoder
پنج شنبه 28 مرداد 1395, 23:42 عصر
مشکل به احتمال زیاد در مقدار برگشتی که داخل if نمیره ولی اینو امتحان کن :
if(data.trim() === 'ok'){
console.log('data is '+data);
alert('i am in if');
}
sasanamiri
جمعه 29 مرداد 1395, 14:35 عصر
مشکل به احتمال زیاد در مقدار برگشتی که داخل if نمیره ولی اینو امتحان کن :
if(data.trim() === 'ok'){
console.log('data is '+data);
alert('i am in if');
}
وای خدا مشکل حل شد از همه شما که این همه کمک کردید ممنونم واقعا دستتون درد نکنه کار همینجا چند روز بود که گیر کرده بود
مثل این که مقدار بازگشتی در کنارش فضای خالی داشته و با این کد مشکل حل شد ممنون
تو برنامه نویسی آدم واقعا بعضی وقت ها سر یه چیز الکی گیر می کنه که وقتی حل میشه تازه میفهمه چه ساده بود و لی به فکرش نرسیده
باز هم از همه شما دوستان گلم تشکر می کنم
omid nasri
جمعه 29 مرداد 1395, 20:35 عصر
پیشنهاد میکنم لینک زیر رو مطاله فرمایید یقینا به جواب و مشکلات که احتمال داره در آینده با آن روبرو شوید حل خواهد شد:
مجدد پیشنهاد میکنم این بخش رو مطالعه کنید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.