بعد از یک مدت تقریبا طولانی ننوشتن در اینجا، در این پست قصد دارم به طور خلاصه درمورد آژاکسی کردن صفحهبندی پیشفرض CakePHP توسط jQuery بنویسم.
ابتدا آخرین نسخهی jQuery را دریافت و آن را به صورت زیر در layout فراخوانی کنید. دقت کنید jQuery تان ویرایش 1.3 یا به بالا باشد چون قرار است از تابع live که در این ویرایش افزوده شده است استفاده کنیم:
<?php echo $javascript->link('jquery-1.3.2.min'); ?>
پیشنهاد میکنم برای تکه کد زیر که قرار است درخواست کلیک بر روی لینک صفحات را به صورت آژاکس ایجاد کند، یک فایل js جدید بسازید یا اینکه میتوانید آن را مستقیم در layout اضافه کنید:
$('a[href*=/page:]').live('click', function(){ $('#content').load($(this).attr('href')); return false; });
کار تمام است با کلیک بر روی شماره صفحات محتوا به صورت آژاکس بارگذاری میشود. اما یکسری نکات ریز که شاید از قلم انداخته باشید:
کامپوننت RequestHandler را میبایستی به کنترلرتان افزوده باشید. دلیل آن روشن است چرا که باید نوع تقاضای کنترلر را، تشخیص دهد و layout را بصورت خودکار به Ajax تبدیل کند. برای درک بیشتر این موضوع پیشنهاد میکنم تغییرات بوجود آمده درپی افزودن یا حذف این کامپوننت را از طریق کنسول FireBug دنبال کنید.
مقدار #content نشانگر id عنصری است که محتوا را در بر دارد. این مقدار layout پیشفرض کیک است اگر برای محتوا id یا class دیگری تعریف کردهاید روشن است که آن را باید تغییر دهید.
کمی بیشتر
با افزودن a[href*=/sort:] به کد بالا میتوانید مرتبسازی عناصر را هم در یک جدول داده پیشفرض کیک به صورت آژاکس داشته باشید:
$('a[href*=/sort:],a[href*=/page:]').live('click', function(){ $('#content').load($(this).attr('href')); return false; });
خواندنیهای کمکی دیگر
+ اگر از ویرایشهای پایین jQuery استفاده میکنید، پلاگین Livequery می توانید جایگزینی برای تابع live باشد.
+ اگر هنوز نمیدانید چگونه صفحهبندی را در app تان ایجاد کنید، به مستندات کیک در اینجا مراجعه کنید.
+ همچنین در اینجا توضیح داده شده چگونه میتوانید این کار را بدون jQuery و البته با استفاده از فریمورک prototype انجام دهید.
صالح
مثل همیشه عالی بود
May 31, 2009 at 1:02 pm
یزدان پرست
ممنون دست شما درد نکنه
June 2, 2009 at 8:52 am
یزدان پرست
خسته نباشید پیشنهاد می کنم یکم برای مبتدی ها اگه امکان داره ساده تر بنویسید سپاس
June 2, 2009 at 9:06 am
mohsen
مرثی .امیدوارم همیشه موفق باشی (خیر ببینی ننه)
اما یه مساله که بشدت منو اذیت میکنه اینه که تو یکی از پستهات خوندم که به زودی دمینت اکسپایر میشه.می شه بگی این اتفاق نا میمون کی میفته؟
June 2, 2009 at 11:58 pm
mohsen
سلام اگه امکانش هست کمی در مورد لی اوت صحبت کن.واقعا گیج شدم
June 11, 2009 at 10:05 pm
محمد
آژاکس نه، ای جکس (ey jax)
September 21, 2009 at 2:30 pm
صالح
با سلام و عرض ادب
خدمت استاد بزرگم
خدمت شما به عرض می رسانم. با کمک عده ای از دوستان. یک فروم برای cakephp ایجاد کردیم.
لذا از شما دعوت می نماییم . با توجه به وقت محدود خود. ما را در فراگیر کردن این فریم ورک کمک نمائید.
آدرس فروم : http://www.cakephp.ir
منتظر دیدار شما هستیم
October 10, 2009 at 12:59 am
honeyamin
سلام خواستم ببینم آیا برنامه ای برای ساخت بعضی ازajaxها هست؟؟؟؟؟؟؟ممنون
October 26, 2009 at 10:05 am
احمد داس زرین
سلام
پس چرا آپدیت نمیشه اینجا
بابا دلمون تنگ شده
کجاییییییییییی؟
March 17, 2010 at 11:10 pm
احمد داس زرین
راستی الان تو کامنت ها دیدم صالح سوزنچی برات کامنت گذاشته
این از دوستان من تو همدان بوده ها
گفتم که من آزاد همدان بودم
صالح خیلی تو همدان فعاله تو زمینه کامپیوتر
March 17, 2010 at 11:20 pm
سید علی
محمد جان ای جکس نه آژاکس (AzhAks)
April 17, 2010 at 12:33 pm
احمد داس زرین
سلام
بابا دوست عزیز همرزم گرام کجایی؟
رفتی خدمت و سر کار و زن و بچه و اینا دیگه وب پیدات نیست!
من رو کشوندی تو وردپرس خودت هیچ کمکی نکردی
دهنم آسفالت شد تا راهش انداختم اون طور که میخواستم
این فروم فارسی هم که سر خود تعطیلش کردن!
این دیگه چه سیستم اپن سورسیه
تو اپن سورس هم بعضی ها باید اخلاق گندشون رو نشون بدن
تو که می شناسی شون یه نصیحتی شون کن
June 12, 2010 at 2:24 am
خانی
واقعا عالیه ، فوق العاده جالبه.
September 6, 2010 at 11:36 am
طراحی سایت
جالب بود..!
ممنون از اطلاع رسانیتون:)
October 2, 2010 at 12:39 pm
ارمان
ممنون
November 16, 2010 at 2:28 pm
ارمان
اگه دوست داشته باشین می تونیم با هم همکاری کنیم منتظر پاسخ شما هستم
November 16, 2010 at 2:30 pm
IRANHEX
ممنون
December 9, 2010 at 12:53 am
شاهرخی
سلام
ممنون از پستت
December 11, 2010 at 5:39 pm