AJAX با PHP (AJAX PHP)
AJAX با PHP یعنی پاسخ گرفتن سریع، بدون رفرش کامل. «غیرهمزمان (Asynchronous)» یعنی منتظر صفحه کامل نمی مانیم. بنابراین بخش کوچکی آپدیت می شود. مثل وقتی فقط نمره یک درس در کارنامه عوض می شود، نه کل صفحه.
نمونه AJAX با PHP
در نمونه منبع، کاربر نام را تایپ می کند. سپس رویداد onkeyup اجرا می شود. تابع showHint() با XMLHttpRequest به سرور می رود. سپس سرور با PHP نام های پیشنهادی برمی گرداند. بنابراین بخش «Suggestions» سریع پر می شود.
کد سمت سرور: gethint.php
این فایل آرایه ای از نام ها را جست وجو می کند. سپس مطابق ورودی q نتیجه را متن ساده برمی گرداند. خروجی می تواند چند نام با کاما باشد.
<?php
// Array with names
$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";
// get the q parameter from URL
$q = $_REQUEST["q"];
$hint = "";
// lookup all hints from array if $q is different from ""
if ($q !== "") {
$q = strtolower($q);
$len = strlen($q);
foreach ($a as $name) {
if (stristr($q, substr($name, 0, $len))) {
if ($hint === "") {
$hint = $name;
} else {
$hint .= ", " . $name;
}
}
}
}
echo $hint === "" ? "no suggestion" : $hint;
گام های عملی سریع
- فایل gethint.php را ایجاد کن.
- کد آرایه و جست وجو را قرار بده.
- در صفحه HTML رویداد onkeyup را به ورودی وصل کن.
- با XMLHttpRequest درخواست ?q=... بفرست.
- پاسخ را در #txtHint نمایش بده.
نکته: رشته ورودی کوچیک می شود تا جست وجو بهتر شود. همچنین پاسخ «no suggestion» یعنی موردی پیدا نشد.
جمع بندی سریع
- AJAX فقط بخش لازم را آپدیت می کند.
- رویداد onkeyup درخواست می فرستد.
- PHP نتیجه را متن ساده برمی گرداند.
- نمایش خروجی در #txtHint انجام می شود.
- لینک آزمایشی: Tryit در منبع.