كمطور PHP، الشيء الوحيد الذي ربما يكون مفيدًا جدًا هو مكتبة فئة Pear. نحن نعلم أن Pear::Pager متخصص في التعامل مع الترحيل، وPear::HTML_AJAX هي مكتبة فئة لتطبيقات Ajax. لكن Pager لا يُستخدم فقط لروابط الترحيل في HTML، بل هو جاهز بالفعل لـ Ajax، وهو أكثر شيوعًا من Super Girl، دعنا نلقي نظرة على كيفية دمج هاتين الحزمتين وتطبيقهما.
بيجر وجافا سكريبت
الآن بعد أن اتخذنا الخطوة الأولى، يمكن لـ Pager بالفعل إنشاء روابط JavaScript، ومن المفترض أن يكون التكامل مع Ajax ممكنًا من الناحية النظرية. وفيما يلي مثال على Pager وJavaScript:
نص عادي
PHP:
require_once'Pager/Pager.php';
$data=range(1,100);// مصفوفة من البيانات المراد ترقيم صفحاتها
$pager_params=صفيف(
'الوضع' =>'انزلاق'،
'append' =>خطأ، // لا تقم بإلحاق معلمات GET بعنوان URL
'المسار' =>''،
'fileName'=>'javascript:revealDiv(%d)', // يستبدل جهاز النداء "%d" برقم الصفحة...
'perPage' =>10,//إظهار 10 عناصر في كل صفحة
'دلتا' =>5،
'itemData'=>$data,
);
$pager= & Pager::factory($pager_params);
$n_pages=$pager->numPages();
$links=$pager->getLinks();
?>
<أتش تي أم أل>
<الرأس>
<script type="text/javascript"language="javascript">
varn_pages =<?phpecho$n_pages?>;
دالة كشف (ن)
{
for(varcount=1;count<= n_pages;count++){
document.getElementById("page"+count).style.display ='none';
}
document.getElementById("page"+n).style.display ='block';
}
</script>
<نمط النوع = "نص/CSS">
قسم الصفحة {
الخلفية:#FFFF99;
الحد العلوي: 1 بكسل صلب # FFBF99؛
الحد السفلي: 1 بكسل صلب # FFBF99؛
}
</نمط>
</الرأس>
<الجسم>
<h1>PEAR::Pagerexample مع JavaScript</h1>
<?phpecho$links['pages'];?>
<ساعة />
<?php
for($i=1;$i<=$n_pages; ++$i){
echo'<div class="page" id="page'.$i.'">';
echo'<h2>الصفحة '.$i.'</h2>';
foreach($pager->getPageData($i)as$item){
echo'Item '.$item.'<br />';
}
صدى'</div>';
}
?>
<ساعة />
<script type="text/javascript"language="javascript">
كشفDiv(1);
</script>
</الجسم>
</html>
في المثال، يتم وضع جميع بيانات الترحيل في علامة div، ويتم تحديد معلمتين مهمتين: المسار (فارغ) واسم الملف. كان من المفترض في الأصل أن يكون اسم الملف هو اسم ملف الارتباط، ولكن تم استبداله بجافا سكريبت هنا.
يتضمن مثال معركة Ajax ثلاثة ملفات: page.html، وserver.php، وtestdata.php
page.html
استخدم javascript--server.php الديناميكي لمعالجة البيانات، واستدعاء HTML_AJAX.replace('target', 'testdata.php') لاستبدال محتوى div بمعرف الهدف.
نص عادي
PHP:
<أتش تي أم أل>
<الجسم>
<h1>PEAR::Pagerexample مع AJAX</h1>
<script type="text/javascript"src="server.php?client=all"></script>
<div id="target">أنا الهدف</div>
<نوع البرنامج النصي = "نص/جافا سكريبت">
HTML_AJAX.replace('target', 'testdata.php');
</script>
</الجسم>
</html>
testdata.php
هذا برنامج PHP بسيط جدًا يحصل على بيانات الترحيل ويخرج
نصًا عاديًا بتنسيق
html
PHP:
<?php
require_once'Pager/Pager.php';
$data=range(1,100);// مصفوفة من البيانات المراد ترقيم صفحاتها
$pager_params=صفيف(
'الوضع' =>'انزلاق'،
'append' =>خطأ، // لا تقم بإلحاق معلمات GET بعنوان URL
'المسار' =>''،
'fileName'=>'javascript:HTML_AJAX.replace('target','testdata.php?pageID=%d');', // يستبدل جهاز النداء "%d" برقم الصفحة...
'perPage' =>10,//إظهار 10 عناصر في كل صفحة
'دلتا' =>1،
'itemData'=>$data,
);
$pager= & Pager::factory($pager_params);
$n_pages=$pager->numPages();
$links=$pager->getLinks();
echo'<p>تم تحميل هذه الحاوية باستدعاء AJAX</p>';
echo'<p><span class="datetime">DateTime: '.date('Ymd H:i:s').'</span></p>';
echo'<h3>Page '.$pager->getCurrentPageId().'</h3>';
foreach($pager->getPageData()as$item){
echo'Item '.$item.'<br />';
}
echo'<hr />'.$pager->links;
?>
أخيرًا، الصق كود الخادم العامل خلف الكواليس server.php واستخدم HTML_AJAX_Server للتعامل مع الأشياء المزعجة مثل
النص العادي
PHP:
<?php
تشمل 'HTML/AJAX/Server.php'؛
$server=newHTML_AJAX_Server();
$server->handleRequest();
?>