PDA

View Full Version : حرفه ای: نمایش لودینگ روی صفحه تا اتمام پردازش یک تابع



ali682344
یک شنبه 05 مرداد 1399, 22:38 عصر
سلام وقت همه بخیر
ببینید دوستان من یک فرم ثبت نام دارم که میره یک api رو از سایت دیگه میخونه

حالا چطور بیام وقتی دکمه رو زدم بیاد یک چیزی مثل لودینگ رو نشون بده و صفحه جاری الماناش غیر فعال شن تا وقتی که پاسخی از api دریافت نشده باشه؟


مثلا قبل اجرای یک کد بگم show loding
و اگه کارش اوکی شد hide loding
اینو چجوری درست کنم

plague
دوشنبه 06 مرداد 1399, 19:36 عصر
سلام
بهتر سوالتون رو بپرسید معمولا کسی به این تاپیک ها پاسخ نمیده


فرم ثبت نام دارم که میره یک api رو از سایت دیگه میخونه

سعی کنید یکم فنی تر صحبت کنید اینکه فرم api میخونه معنی نمیده
احتمالا منظورتون اینه که فرم ثبت نام ارسال میشه برای api و اونجا احراز هویت میشه و نتیجه رو برمیگردونه ؟


حالا چطور بیام وقتی دکمه رو زدم

شما اول باید توضیح بدی راجب دکمه و نحوه کارکرد و اتصالش به api به قول شما بعد بیای راجبش سوال بپرسی
آیا فرم شما با ایجکس ثبت میشه یا فرم معمولی هست ؟
آیا مستقیم به ap وصل میشی یا فرم رو میفرستی به بک اند خودت و با curl وصل میشی به api ?



حالا چطور بیام وقتی دکمه رو زدم بیاد یک چیزی مثل لودینگ رو نشون بده و صفحه جاری الماناش غیر فعال شن تا وقتی که پاسخی از api دریافت نشده باشه؟

php نمیتونه المان های صفحه وب رو مخفی یا ظاهر کنه ... php توی سرور اجرا میشه
المان های صفحه توی مرورگر کلاینت رندر میشن هیچ کنترلی نداره

بازم من حدس میزنم ولی احتملاا اون چیزی که شما میخای باید با ایجکس ارسال کنی فرم رو و با jquery مخفی و ظاهر کنی المان ها رو
پیشنهاد میکنم یکم راجب ajax و jquey بخونی

ali682344
سه شنبه 07 مرداد 1399, 22:47 عصر
سلام
بهتر سوالتون رو بپرسید معمولا کسی به این تاپیک ها پاسخ نمیده



سعی کنید یکم فنی تر صحبت کنید اینکه فرم api میخونه معنی نمیده
احتمالا منظورتون اینه که فرم ثبت نام ارسال میشه برای api و اونجا احراز هویت میشه و نتیجه رو برمیگردونه ؟



شما اول باید توضیح بدی راجب دکمه و نحوه کارکرد و اتصالش به api به قول شما بعد بیای راجبش سوال بپرسی
آیا فرم شما با ایجکس ثبت میشه یا فرم معمولی هست ؟
آیا مستقیم به ap وصل میشی یا فرم رو میفرستی به بک اند خودت و با curl وصل میشی به api ?




php نمیتونه المان های صفحه وب رو مخفی یا ظاهر کنه ... php توی سرور اجرا میشه
المان های صفحه توی مرورگر کلاینت رندر میشن هیچ کنترلی نداره

بازم من حدس میزنم ولی احتملاا اون چیزی که شما میخای باید با ایجکس ارسال کنی فرم رو و با jquery مخفی و ظاهر کنی المان ها رو
پیشنهاد میکنم یکم راجب ajax و jquey بخونی

سلام دوست خوبم دقیقا همون چیزاییه که خودتون حدس زدین

ببین فرم من یه صورت ایجکس اطلاعات رو پست میکنه به api که api هم با curl بهش وصل میشم و دقیقا منتظر میمونم تا سرور api به من یک پاسخی بده این کار زمانی انجام میشه که
دکمه submit رو میزنم یک فانکشن اجرا میشه:

$.ajax({
type: "POST",
url: "api/use.php",
async: false,
data: data,
dataType: 'json',
success: function (e) {
//alert(e);
if(e == 0){ //قبلا ذحیره نشده بود


این مثلا یک تکه کد همون فانکشن هست
حالا میخوام یک روشی رو بمن بگید که چیکار کنم که یک لودینگ با جاوااسکریپت یا هرچیز دیگه ای بزارم که تا زمانی از api پاسخی نیومده به کاربر نشون داده بشه و وقتی پاسخ اومد لودینگ مخفی بشه

بازم ممنونم

plague
چهارشنبه 08 مرداد 1399, 21:15 عصر
یه المنت لودینگ میزاری مثلا با id = loading قبل از اجکس show »یکنی و بعد از پاسخ hide میکنی


$('#loading').show();
$.ajax({

success: function (e) {
$('#loading').hide();
}
})