💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۴ جواد عباسی
نحوه ارسال درخواست ایجکس در محیط پنل پیشرفته مبتنی بر شی گرایی
جامعه وردپرس (برنامه نویسی) ایجاد شده در ۲۹ آبان ۱۳۹۹

سلام استاد عزیز . ممنون میشم توضیح بدهید اگر در همین پنل پیشرفته که ایجاد کردید اگر بخواهیم درخواست ایجکس ارسال کنیم چه جوری باید این کار رو انجام بدیم بنده هر چی سرچ کردم پاسخی پیدا نکردم مثلا من میخوام به یکی از همین handler‌ها یک درخواست ایجکس ارسال بشه .شما در قسمت پلاگین ثبت و نام و ورود ایجکس رو استفاده کردید  که اکشن سفارشی و url  پیش فرض رو نوشتید ولی در محیط این پنل پیشرفته فکر کنم نوحه استفاده فرق میکنه و  بنده هر چی تلاش کردم نتونستم و همیشه پاسخ درخواست صفر بر می‌گشت .بازم ممنون میشم روش اصولی کار رو توضیح بدهید یعنی در محیط این پنل url ایجکس چی باید باشه؟ یا اکشن خاصی نیاز هست در ایجکس؛ در این پنل وارد بشه (چون وقتی اکشن وارد میکردم پاسخ این بود که آدرس بر اساس فایل روتر خط فلان معتبر نیست ) یا اینکه در construnt function نحوه صحیح قلاب کردن wp_ajax چگونه است یا اصلا در محیط این پنل نیازی به این قلاب هست یا نه .اگه مقدور هست سریع‌تر جواب بدید چون الان درگیر همین پروژه هستم و به پاسخ نیاز دارم.

سلام آقای عباسی

اگر شما از ایجکس استفاده کردی فرق چندی توی استفاده در کدنویسی به صورت شی گرا نداره و فقط نحوه صدا زدن کمی متفاوت هست

من یک لینک می‌فرستم مطالعه کنید اگر مشکل حل نشد کدی که زدید و جای که خطا داره رو ارسال کنید تا بتونم راهنمایی بیشتری انجام بدم

Designing a class: WordPress AJAX handler

مجید زادگی ۳۰ آبان ۱۳۹۹، ۱۰:۴۰

خیلی ممنون بابت پاسخگویی -این سایتی که شما فرستادید بنده رو بیشتر سر در گم کرد .بنده در حال یادگیری هستم و خیلی سر در نمیارم .اون چیزی که من تا حالا درک کردم کاری هست در سه تصویر الصاقی انجام دادم اما پاسخ ایجکس 400
Bad Request رو میده .ببینید بنده یک کلاس CompanyInformationHandler دارم که میخوام تو فایل ایندکس اش یه تصویر بارگزاری کنم و قبل از ارسال به سرور تصویر برش بخوره و ری سایز بشه که این کار رو میخوام با ایجکس انجام بدم برای همین تو فایل جی اس ام طبق تصویر شماره یک اون url  و اکشن رو تعریف کردم و add_action ‌ها رو هم طبق تصویر شماره دو تو همین فایل  CompanyInformationHandler تعریف کردم و تابع قلاب شده رو هم باز تو همین فایل طبق تصویر شماره سه تعریف کردم حالا نمیدونم روش ام درست بوده یا نه

جواد عباسی ۳۰ آبان ۱۳۹۹، ۱۳:۴۶

لطفا چند مورد چک کنید

۱- add_action که گذاشتید اجرا میشه یا نه؟

۲- آدرس ajax_url رو اشتباه ثبت کردید باید اصلاح کنید روش درست به شکل زیر هست به عنوان مثال:

 

 wp_localize_script('script_users', 'AJAXSCRIPT', array(
            'ajax_url' => admin_url('admin-ajax.php')
        ));
 wp_enqueue_script('script_users');   

بعد از اینکار در فایل JS شما متغییر لود میشه که می‌تونید آدرس رو از طریق اون ست کنید

 

$.ajax({
        url: AJAXSCRIPT.ajax_url,

 

۳- dataType: "json" رو در موقع اجرای تابع ایجکس بیارید.

 

و نکته آخر اینکه کد مربوط به اکشن رو اول برای تست فقط یک مقدار برگشت بدید و مطمن بشید تابع ایجکس به درستی کار می‌کنه یا نه بعد کد نویسی لازم رو شروع کنید

 

امیدوارم که توضیحات لازم برای حل مسله شما کافی باشه یک تلاش دیگه انجام بدید و دقیق بررسی کنید کد رو

 

مجید زادگی ۳۰ آبان ۱۳۹۹، ۲۳:۴۵

آدرس url که مشکل نداشت چون آدرس رو میشناسه و wp_localize_script یه عمل اختیاری و استاندارد کار هست . مشکل از این بود که add_action‌ها رو باید در فایل اصلی پروژه (panel-pro) وارد میکردم که من در فایل CompanyInformationHandler وارد کرده بودم , مشکل ایجکس حل شد اما الان مشکل این هست که طبق تصاویری که پیوست کردم تصویر شماره 5 و 6 مربوط به کد‌های دموی پلاگین برش عکس هست که چون خارج از محیط شی گرایی هست به خوبی عمل میکنه و عکس برش خورده به درستی نشون داده میشه و همون جور که تو دو مورد آخر تصویر inspect اش (شماره 6)مشخص هست درخواست‌ها تبدیل به عکس شدند و اصلا درخواست xhr ای وجود نداره اما تو پروژه بنده طبق تصویر شماره 7 یک درخواست ایجکس و یک درخواست img ارسال شده که ایجکس به درستی پاسخ داده اما درخواست img اروری که تو تصویر شماره 8 مشخصه نشون داده میشه و عکس برش خورده در صحفه ایندکس نشون داده نمیشه چون برای عکس یه آدرس تولید شده که با آدرس‌های handler ما نمیخونه و اون ارور تصویر شماره هشت رو نشون میده --- اینم آدرس سایت

 https://www.webslesson.info/2018/03/image-crop-and-upload-using-jquery-with-php-ajax.html

 و اینم آدرس دموی زنده 

https://www.webslesson.info/2018/03/demo-of-image-crop-upload-using-jquery.html

 

جواد عباسی ۰۱ آذر ۱۳۹۹، ۱۳:۳۳