آموزش Ajax > مثال های عملی کار با Ajax > کاربرد Ajax در PHP
کاربرد Ajax در PHP :
در این بخش قصد داریم ، تا با ارائه یک مثال عملی ، نحوه استفاده از دستورات Ajax در
یک صفحه PHP را به صورت گام به گام ، شرح دهیم .
در این مثال یک کادر متن داریم که به تایپ کردن کاربر درون آن ، حساس است . هر زمان
که کاربر کاراکتری را درون آن تایپ نماید ، این کنترل لیستی از آیتم های پیشنهادی که
با آن کاراکتر شروع می شوند ، را به کاربر نمایش می دهد .
در این مثال صفحه PHP به وسیله یک دستور Ajax ، با یک فایل آماده از عناوین ارتباط
برقرار کرده و اطلاعات لازم را از آن دریافت می کند .
1 ) کد تابع ( ) showHint :
هنگامی که کاربر در کادر متن موجود در صفحه PHP تایپ می کند ، به وسیله رویداد ( )
onkeyup آن ، تابع ( ) showHint اجرا می شود .
کد این تابع در جدول زیر نمایش داده شده است . کد را یکبار مرور نمایید . سپس به توضیح
گام به گام هر بخش از مثال پرداخته شده است :
کد تابع
ShowHint ( )
|
function showHint(str)
{
var xmlhttp;
// Ajax ایجاد یک متغیر برای ذخیره کردن شی
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{ //
IE7+, Firefox, Chrome, Opera, Safari
کد برای مرورگرهای
xmlhttp=new XMLHttpRequest();
}
else
{ // IE6, IE5
کد برای مرورگرهای
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","gethint.php?q="+str,true);
xmlhttp.send( );
}
|
2 ) توضیح گام به گام کد مثال :
هر یک از بخش های کد مثال که با یک رنگ خاص مشخص شده اند ، را توضیح می دهیم :
- این بخش کد مثال ، بررسی می کند اگر کادر متن خالی باشد ( str.length==0
) ، تابع مقدار عنصر txtHint موجود بر روی صفحه را پاک کرده و از تابع خارج می شود
.
- این بخش از کد یک شی XMLHttpRequest
را ساخته و عملیات Ajax را آغاز می کند . کد لازم برای پشتیبانی انواع مرورگرها را
قرار داده ایم .
- این بخش از کد ، بررسی می کند که آیا پاسخ درخواست Ajax از سرور برگشته
و آماده است یا خیر . سپس در صورت آماده بودن جواب ، مقدار آن را در عنصر txtHint موجود
بر روی صفحه قرار می دهد .
- این بخش از کد ، شی xmlhttp ، را آماده کرده و به وسیله
متد GET ، آن را به فایل مورد نظرمان یعنی gethint.php ارسال می کند .
همچنین توجه داشته باشید ، که متغیر str به وسیله پارامتر q به صفحه مقصد PHP ارسال
شده است ، که بعدا در آن دریافت و استفاده خواهد شد .
3 ) کد صفحه PHP مثال :
همانطور که در کد ایجکس در بخش اول مشاهده کردید ، کد ایجکس ، فایل gethint.php را
در دستور خود فراخوانی و اجرا می کند .
این فایل ، به جستجوی نام های معادل با کاراکتر ورودی توسط کاربر پرداخته و نتیجه ای
معادل را بر می گرداند . در صورتی که هم ، معادلی برای مقدار ورودی پیدا نشود ، ، عبارت
" no suggestion " به معنای بدون نتیجه صادر می شود .
کد فایل php در جدول زیر تشریح شده است :
کد فایل
PHP
|
< ?php
// لیست نام های مثال
$a[ ]="Anna";
$a[ ]="Brittany";
$a[ ]="Cinderella";
$a[ ]="Diana";
$a[ ]="Eva";
$a[ ]="Fiona";
$a[ ]="Gunda";
$a[ ]="Hege";
$a[ ]="Inga";
$a[ ]="Johanna";
$a[ ]="Kitty";
$a[ ]="Linda";
$a[ ]="Nina";
$a[ ]="Ophelia";
$a[ ]="Petunia";
$a[ ]="Amanda";
$a[ ]="Raquel";
$a[ ]="Cindy";
$a[ ]="Doris";
$a[ ]="Eve";
$a[ ]="Evita";
$a[ ]="Sunniva";
$a[ ]="Tove";
$a[ ]="Unni";
$a[ ]="Violet";
$a[ ]="Liza";
$a[ ]="Elizabeth";
$a[ ]="Ellen";
$a[ ]="Wenche";
$a[ ]="Vicky";
// از صفحه مبدا q دریافت پارامتر
$q = $_GET["q"];
// جستجو برای نام مورد نظر در صورت وارد کردن مقداری از
سوی کاربر
if (strlen($q) > 0)
{
$hint="";
for( $i=0 ; $i < count($a) ; $ i++ )
{
if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q))))
{
if ($hint==" ")
{
$hint=$a[$i];
}
else
{
$hint=$hint." , ".$a[$i];
}
}
}
}
// اگر نتیجه ای پیدا نشد
، عبارت بدون نتیجه تعیین شود
// یا اینکه جواب خروجی ارسال
شود
if ($hint == "")
{
$response="no suggestion";
}
else
{
$response=$hint;
}
// ارسال نتیجه خروجی به صفحه مبدا - دستور ایجکس
echo $response;
?>
|
|
خروجی
|
مشاهده خروجی مثال
|
راجع این مطلب
سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...
>>>>> ورود به انجمن تخصصی
نطر خودتان درباره این صفحه را با ما در میان بگذارید :