استفاده از jQuery برای صفحه‌بندی در CakePHP

May 31, 2009 at 12:32 am

بعد از یک مدت تقریبا طولانی ننوشتن در اینجا، در این پست قصد دارم به طور خلاصه درمورد آژاکسی کردن صفحه‌بندی پیشفرض 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 دنبال کنید. ادامه مطلب …