AJAX PHP/ASP
AJAX ใช้ในการทำให้โปรแกรมประยุกต์ปฏิสัมพันธ์มากขึ้น
ตัวอย่าง AJAX PHP/ASP
ตัวอย่างนี้จะสาธิตการสื่อสารของเว็บเพจกับแม่ข่ายเว็บ ขณะที่ผู้ใช้พิมพ์ตัวอักษรทีละตัวในฟิลด์นำเข้า (input field)
ตัวอย่าง
อธิบายตัวอย่าง showHint() Function
เมื่อผู้ใช้พิมพ์ตัวอักษรในฟิลด์นำเข้า (input field) ฟังก์ชัน showHint() ได้รับการประมวลผล ฟังก์ชันนี้สับเปลี่ยนโดย onkeyup event
function showHint(str)
{
var xmlhttp;
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for 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();
}
คำอธิบาย source code
ถ้าฟิลด์นำเข้าว่าง (str.length==0) ฟังก์ชันจะล้างเนื้อหาของตัวเก็บ txtHint และออกจากฟังก์ชัน
ถ้าฟิลด์นำเข้าไม่ว่าง ฟังก์ชัน showHint() จะประมวลผลต่อไปนี้
สร้างอ๊อบเจค XMLHttpRequest
สร้างการประมวลผลฟังก์ชัน เมื่อการตอบสนองจากแม่ข่ายพร้อมแล้ว
ส่งออกไฟล์จากแม่ข่าย
ให้สังเกตว่า พารามิเตอร์ (q) ได้รับการเพิ่มสู่ URL (ด้วยเนื้อหาของฟิลด์นำเข้า)
AJAX Server Page - PHP and ASP
เพจบนแม่ข่ายที่เรียกโดย JavaScript เป็นไฟล์ PHP ชื่อ gethint.php ไฟล์ ASP ชื่อ gethint.asp ต่อไปจะเป็นสร้างไฟล์แม่ข่าย 2 เวอร์ชัน ไฟล์หนึ่งเขียนด้วย PHP และอีกไฟล์เขียนด้วย ASP
ไฟล์ PHP
ชุดคำสั่งใน gethint.php ตรวจสอบ array ของชื่อ แล้วส่งออกชื่อที่ตรงกันไปยังบราวเซอร์
<?php
// สร้าง array ของคำ
$$a[]="มกราคม";
$a[]="กุมภาพันธ์";
$a[]="มีนาคม";
$a[]="เมษายน";
$a[]="พฤษภาคม";
$a[]="มิถุนายน";
$a[]="กรกฎาคม";
$a[]="สิงหาคม";
$a[]="กันยายน";
$a[]="ตุลาคม";
$a[]="พฤศจิกายน";
$a[]="ธันวาคม";
$a[]="กรรณิการ์";
$a[]="ขนิษฐา";
$a[]="ขวัญเมือง";
$a[]="คะนึง";
$a[]="ฆาต";
$a[]="งามพิศ";
$a[]="จตุรงค์";
$a[]="ฉวีวรรณ";
$a[]="ชัชวาล";
$a[]="ซอด้วง";
$a[]="เฌอ";
$a[]="ญาณ";
$a[]="ฎีกา";
$a[]="ฐากร";
$a[]="เฒ่า";
$a[]="ณรงค์";
$a[]="ดวงใจ";
$a[]="ตระการ";
$a[]="ถมยา";
$a[]="ทรรศนีย์";
$a[]="ธงชัย";
$a[]="นนทรี";
$a[]="นรากร";
$a[]="บงกช";
$a[]="บุษบา";
$a[]="ประพันธ์";
$a[]="ผาณิต";
$a[]="ฝ้ายคำ";
$a[]="พจนา";
$a[]="พฤกษา";
$a[]="ฟองน้ำ";
$a[]="ภมร";
$a[]="มณฑา";
$a[]="มธุรส";
$a[]="ยมนา";
$a[]="ยอกย้อน";
$a[]="รณรงค์";
$a[]="รตี";
$a[]="ฤทัย";
$a[]="ลักขณา";
$a[]="ฦๅชา";
$a[]="วงศ์วาน";
$a[]="วนาลัย";
$a[]="ศกุน";
$a[]="ษมา";
$a[]="สกุณา";
$a[]="สถาพร";
$a[]="หงส์";
$a[]="องครักษ์";
$a[]="อภิชาต";
$a[]="ฮอด";
// รับพารามิเตอร์ q จาก URL
$q=$_GET["q"];
// มองหาคำแนะนำทั้งหมดจาก array ถ้าความยาวของ q > 0
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="ไม่มีคำแนะนำ";
}
else
{
$response=$hint;
}
//ส่งออกการตอบสนอง
echo $response;
?>
ไฟล์ ASP
ชุดคำสั่งใน gethint.asp ตรวจสอบ array ของชื่อ แล้วส่งออกชื่อที่ตรงกันไปยังบราวเซอร์
หมายเหตุ การเรียกใช้ตัวอย่างใน ASP ให้เปลี่ยนค่าตัวแปร url (ในไฟล์ HTML) จาก gethint.php เป็น gethint.asp
<%
response.expires=-1
dim a(30)
' สร้าง array ของคำ
a(1)=มกราคม
a(2)=กุมภาพันธ์
a(3)=มีนาคม
a(4)=เมษายน
a(5)=พฤษภาคม
a(6)=มิถุนายน
a(7)=กรกฎาคม
a(8)=สิงหาคม
a(9)=กันยายน
a(10)=ตุลาคม
a(11)=พฤศจิกายน
a(12)=ธันวาคม
a(13)=กรรณิการ์
a(14)=ขนิษฐา
a(15)=ขวัญเมือง
a(16)=คะนึง
a(17)=ฆาต
a(18)=งามพิศ
a(19)=จตุรงค์
a(20)=ฉวีวรรณ
a(21)=ชัชวาล
a(22)=ซอด้วง
a(23)=เฌอ
a(24)=ญาณ
a(25)=ฎีกา
a(26)=ฐากร
a(27)=เฒ่า
a(28)=ณรงค์
a(29)=ดวงใจ
a(30)=ตระการ
a(31)=ถมยา
a(32)=ทรรศนีย์
a(33)=ธงชัย
a(34)=นนทรี
a(35)=นรากร
a(36)=บงกช
a(37)=บุษบา
a(38)=ประพันธ์
a(39)=ผาณิต
a(40)=ฝ้ายคำ
a(41)=พจนา
a(42)=พฤกษา
a(43)=ฟองน้ำ
a(44)=ภมร
a(45)=มณฑา
a(46)=มธุรส
a(47)=ยมนา
a(48)=ยอกย้อน
a(49)=รณรงค์
a(50)=รตี
a(51)=ฤทัย
a(52)=ลักขณา
a(53)=ฦๅชา
a(54)=วงศ์วาน
a(55)=วนาลัย
a(56)=ศกุน
a(57)=ษมา
a(58)=สกุณา
a(59)=สถาพร
a(60)=หงส์
a(61)=องครักษ์
a(62)=อภิชาต
a(63)=ฮอด
' รับพารามิเตอร์ q จาก URL
q=ucase(request.querystring("q"))
' มองหาคำแนะนำทั้งหมดจาก array ถ้าความยาวของ q > 0
if len(q)>0 then
hint=""
for i=1 to 30
if q=ucase(mid(a(i),1,len(q))) then
if hint="" then
hint=a(i)
else
hint=hint & " , " & a(i)
end if
end if
next
end if
'ส่งออก "ไม่มีคำแนะนำ" ถ้าไม่พบคำแนะนำ
'หรือ ส่งออก ค่าถูกต้อง
if hint="" then
response.write("ไม่มีคำแนะนำ")
else
response.write(hint)
end if
%>
|