Asynchronous JavaScript and XML

Home

AJAX Tutorial
Knowledge Developer Database Internet Resource
AJAX Tutorial
1. แนะนำ AJAX
2. ตัวอย่าง AJAX
3. การสร้าง XMLHttpRequest Object
4. การส่งคำขอไปแม่ข่าย
5. การตอบสนองจากแม่ข่าย
6. onreadystatechange Event
7. AJAX PHP/ASP
8. AJAX Database
9. AJAX XML
 
Internet
PHP
SSI
HTML
AJAX
 

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
%>


 


  
[an error occurred while processing this directive]