پی‌اچ‌پی - AJAX و PHP

از ویکی‌کد
پرش به ناوبری پرش به جستجو
Main Page Tutorial
Php-menu.png
موارد آموزشی
فرم‌ها در PHP
PHP پیشرفته
شیء گرایی در PHP
پایگاه داده MySQL
XML در PHP
AJAX در PHP
۱مقدمه‌ای بر AJAX
۲AJAX و PHP
۳AJAX و پایگاه داده
۴AJAX و XML
۵جستجوی دیداری AJAX
۶نظرسنجی با AJAX
مثال‌های PHP
مرجع PHP


AJAX برای ساخت نرم‌افزارهای تعاملی بیشتر استفاده می‌شود.[۱]

مثال AJAX در PHP

مثال زیر نحوه اینکه چطور یک صفحه وب می‌تواند با یک وب سرور در هنگام تایپ کاراکتر در یک فیلد ورودی با سرور ارتباط برقرار کند را به شما توضیح می‌دهد:

مثال

در فیلد ورودی زیر تایپ کردن را شروع کنید:

Time2wait.svg ساخت نمونه مثال این بخش در دست اقدام است.


توصیه‌ها:

توضیح مثال

در مثال بالا، زمانی که کاربر یک کاراکتر را در فیلد ورودی تایپ می‌کند، یک تابع فراخوانی می‌شود "showHint()" اجرا می‌شود.

رویداد onkeyup موجب اجرای این تابع می‌شود.

در پایین کد HTML وجود دارد:

مثال

 1 <html>
 2 <head>
 3 <script>
 4 function showHint(str) {
 5     if (str.length == 0) {
 6         document.getElementById("txtHint").innerHTML = "";
 7         return;
 8     } else {
 9         var xmlhttp = new XMLHttpRequest();
10         xmlhttp.onreadystatechange = function() {
11             if (this.readyState == 4 && this.status == 200) {
12                 document.getElementById("txtHint").innerHTML = this.responseText;
13             }
14         };
15         xmlhttp.open("GET", "gethint.php?q=" + str, true);
16         xmlhttp.send();
17     }
18 }
19 </script>
20 </head>
21 <body>
22 
23 <p><b>Start typing a name in the input field below:</b></p>
24 <form>
25 First name: <input type="text" onkeyup="showHint(this.value)">
26 </form>
27 <p>Suggestions: <span id="txtHint"></span></p>
28 </body>
29 </html>


مشاهدهٔ نتیجه


توضیح کد:

ابتدا، بررسی می‌شود که فیلد ورودی خالی است؟ (str.length == ۰). در صورتی که فیلد ورودی خالی باشد، محتوای متن راهنمای txtHint پاک شده و از تابع خارج می‌شود.

اما، در صورتی که فیلد خالی نباشد، مراحل زیر طی می‌شود:

  • ساخت یک شی XMLHttpRequest
  • ساخت تابعی که می‌بایست در هنگامی که پاسخ سرور آماده است اجرا شود.
  • ارسال یک درخواست به فایل پی‌اچ‌پی (gethint.php) روی سرور
  • توجه کنید که پارامتر q به url اضافه شده‌است (gethint.php?q="+str)
  • و متغیر str محتوای فیلد ورودی را نگهداری می‌کند

فایل پی‌اچ‌پی - "gethint.php"

فایل PHP آرایه‌ای از نام‌ها را بررسی می‌کند، و نام‌های متناظر را به مرورگر بازمی‌گرداند:

 1 <?php
 2 // Array with names
 3 $a[] = "Anna";
 4 $a[] = "Brittany";
 5 $a[] = "Cinderella";
 6 $a[] = "Diana";
 7 $a[] = "Eva";
 8 $a[] = "Fiona";
 9 $a[] = "Gunda";
10 $a[] = "Hege";
11 $a[] = "Inga";
12 $a[] = "Johanna";
13 $a[] = "Kitty";
14 $a[] = "Linda";
15 $a[] = "Nina";
16 $a[] = "Ophelia";
17 $a[] = "Petunia";
18 $a[] = "Amanda";
19 $a[] = "Raquel";
20 $a[] = "Cindy";
21 $a[] = "Doris";
22 $a[] = "Eve";
23 $a[] = "Evita";
24 $a[] = "Sunniva";
25 $a[] = "Tove";
26 $a[] = "Unni";
27 $a[] = "Violet";
28 $a[] = "Liza";
29 $a[] = "Elizabeth";
30 $a[] = "Ellen";
31 $a[] = "Wenche";
32 $a[] = "Vicky";
33 
34 // get the q parameter from URL
35 $q = $_REQUEST["q"];
36 
37 $hint = "";
38 
39 // lookup all hints from array if $q is different from ""
40 if ($q !== "") {
41     $q = strtolower($q);
42     $len=strlen($q);
43     foreach($a as $name) {
44         if (stristr($q, substr($name, 0, $len))) {
45             if ($hint === "") {
46                 $hint = $name;
47             } else {
48                 $hint .= ", $name";
49             }
50         }
51     }
52 }
53 
54 // Output "no suggestion" if no hint was found or output correct values
55 echo $hint === "" ? "no suggestion" : $hint;
56 ?>


منابع آموزشی