มาเรียน AJAX กับ PHP


AJAX กับ PHP
ก่อนที่จะใช้งานและทดลองเขียน AJAX ได้นั้น เราต้องมี 2เทคโนโลยี คือ

  • browser ที่สนับสนุน XMLHTTP หรือ  XMLHttpRequest objects
  • HTTP Server ที่ตอบสนอง  XML ซึ่งทั้ง 2 ตัวนี้ โดยทั่วไปก็ ใช้ได้ อยู่ แล้ว เช่น i.e หรือ firefox ก็สนับสนุน XMLHTTP หรือ  XMLHttpRequest อยู่แล้ว และ server โดยทั่วไปก็ไม่มี ปัญหา เรื่อง XML อยู่แล้ว ดังการจะเขียนหรือ ใช้งาน AJAX เราไม่ต้องติดตั้งอะไรเพิ่มเติมเลย
หัวใจหลัก ๆ เลย ของ AJAX คือ html  javascript และ xml และควรมีความรู้ พวกภาษาที่ทำงาน บน server เช่น  php,jsp,asp อย่างใดอย่างหนึ่งด้วย เพื่อเพิ่มประสิทธิภาพ และ ความสามารถของ AJAX ยิ่งขึ้น
ลองดู รูปประกอบ จะเข้าใจการทำงานดียิ่งขึ้น
AJAX กับ PHP รูปการทำงาน

การประกาศใช้ XML HTTP Request ใน javascript
ดังนี้

if (window.XMLHttpRequest) {
   req = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
   req = new
ActiveXObject("Microsoft.XMLHTTP");
} 

   โค้ด ข้างบนนี้เป็นการ เช็ตว่า browser สนับสนุน xmlHttpRequest หรือ XMLHTTP หรือไม่ 
แล้ว สร้าง Object reg ขึ้นมา ใช้
เมื่อมีวัถตุ reg แล้ว เราก็สามารถ ติดต่อกับ server ได้ โดย ใช้ open method ( function open ของ วัตถุ reg )
ตัวอย่างเช่น 
req.open("GET", url, true);
หรือเราจะใช้
req.open("POST", url, true);
ก็ได้ขึ้นอยู่ กับข้อมูลที่เราต้องการส่งไปยัง server
url ก็คือ ตำแหน่งไฟล์ ที่จะรับค่า ไปทำงานต่อ

สอบถามและคุยกันได้ที่บอร์ดครับ เพราะข้อมูล Ajax php มีความเคลื่อนไหวเร็วมาก http://www.mindphp.com/forums/index.php
ตัวอย่าง Ajax + php + Database (Mysql)

<html>
<head>
<script type="text/javascript">
var xmlhttp;
function showUser(str)
{
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
  {
  alert ("Browser does not support HTTP Request");
  return;
  }
var url="getmindphpuser.php";
url=url+"?q="+str;
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
function stateChanged()
{
if (xmlhttp.readyState==4)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
 {
// code for IE7+, Firefox, Chrome, Opera, Safari
return new XMLHttpRequest();
}
if (window.ActiveXObject)
{ // code for IE6, IE5
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}
</script>
</head>
<body>
<form>
Select a User:
<select name="users" onchange="showUser(this.value)">
<option value="1">Peter Griffin</option>
<option value="2">Lois Griffin</option>
<option value="3">Glenn Quagmire</option>
<option value="4">Joseph Swanson</option>
</select>
</form>
<br />

<div id="txtHint"><b>Person info will be listed here.</b></div>

</body>
</html>

getmindphpuser.php

<?php

$q=$_GET["q"];



$con = mysql_connect('localhost', 'user', 'passsword');

if (!$con)

  {

  die('Could not connect: ' . mysql_error());

  }



mysql_select_db("ajax_mindphp", $con);



$sql="SELECT * FROM user WHERE id = '".$q."'";



$result = mysql_query($sql);



echo "<table border='1'>

<tr>

<th>Firstname</th>

<th>Lastname</th>

<th>Age</th>

<th>Hometown</th>

<th>Job</th>

</tr>";



while($row = mysql_fetch_array($result))

  {

  echo "<tr>";

  echo "<td>" . $row['FirstName'] . "</td>";

  echo "<td>" . $row['LastName'] . "</td>";

  echo "<td>" . $row['Age'] . "</td>";

  echo "<td>" . $row['Hometown'] . "</td>";

  echo "<td>" . $row['Job'] . "</td>";

  echo "</tr>";

  }

echo "</table>";



mysql_close($con);

?>

Free Ajax Script


เนื้อหาอยู่ในระหว่างการจัดทำ
แนะนำ Free Host PHP Mysql 

 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ใช้ LaiThai e-Commerce Edition VM 1.1.4 ร่วมกับ Dynmic DNS แล้วมีปัญหาครับ
โดย kunkarin จ 29 มี.ค. 2010 11:37 am บอร์ด สอบถามปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
2
1950
พฤ 26 พ.ย. 2020 11:07 pm โดย mindphp View Topic ใช้ LaiThai e-Commerce Edition VM 1.1.4 ร่วมกับ Dynmic DNS แล้วมีปัญหาครับ
ATOM
โดย tawat จ 29 มี.ค. 2010 11:36 am บอร์ด Programming - C/C++ & java & Python
2
1615
พ 10 พ.ย. 2010 3:55 pm โดย gangwell View Topic ATOM
ปัญหาการเข้าจัดการเว็บไซต์
โดย natthawat44 อ 28 มี.ค. 2010 12:53 am บอร์ด สอบถามปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
1
882
อ 28 มี.ค. 2010 1:19 am โดย mindphp View Topic ปัญหาการเข้าจัดการเว็บไซต์
ใช้ php รันโปรแกรม .exe โปรแกรมทำงานแต่หน้าเว็บค้าง ครับ
โดย witkot ศ 26 มี.ค. 2010 4:20 pm บอร์ด Programming - PHP
6
4803
พฤ 01 เม.ย. 2010 11:36 pm โดย witkot View Topic ใช้ php รันโปรแกรม .exe โปรแกรมทำงานแต่หน้าเว็บค้าง ครับ
php+telnet
โดย Anonymous อ 21 มี.ค. 2010 6:21 pm บอร์ด Programming - PHP
1
1355
ส 27 มี.ค. 2010 6:52 am โดย บุคคลทั่วไป View Topic php+telnet
วันนี้ลองต่อเน็ต ด้วยมือถือ โดยใช้ซิม 3G ของ i-mobile
โดย mindphp ส 27 มี.ค. 2010 4:39 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
1996
ส 27 มี.ค. 2010 4:39 am โดย mindphp View Topic วันนี้ลองต่อเน็ต ด้วยมือถือ โดยใช้ซิม 3G ของ i-mobile
jqgrid
โดย wirat_suandee ศ 26 มี.ค. 2010 6:11 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
4
2037
อ 30 มี.ค. 2010 8:52 am โดย ob1 View Topic jqgrid
ถามเรื่องการเข้าใช้งาน database
โดย iampingza ศ 26 มี.ค. 2010 10:28 am บอร์ด SQL - Database
1
1750
ศ 26 มี.ค. 2010 9:24 pm โดย mindphp View Topic ถามเรื่องการเข้าใช้งาน database