ขอรบกวนเรื่อง ajax กับ textbox อีกรอบครับ
ขอโทษนะครับ รบกวนบ่อย พอดีมือใหม่จริงๆคับ ท่านอาจารย์
** ถ้าเรามี textbox หลายๆ อัน เราจะรับค่าตรง ajax ยังไงคับ รวมถึงการส่งค่าไปหน้า save ด้วยครับ
** กรณีนี้ผมไม่ได้ใช้ปุ่ม submit ครับ ใช้ onChange ครับ
CODE :: ajax.php
<?
$sql="SELECT * FROM sample ORDER BY topic ";
$query=mysql_query($sql) or die("äÁèÊÒÁÒöÍèÒ¹°Ò¹¢éÍÁÙÅä´é");
$num_rows=mysql_num_rows($query);
?>
<a href="#" onClick="window.close();">»Ô´Ë¹éÒ¹Õé</a>
<head>
<title>AJAX - TEXT BOX</title>
</head>
<body>
<div id='status'></div>
<form name="formlist" id="formlist">
<table border="0" cellspacing="0" cellpadding="0">
<tr><td><input type="text" name="a1" onchange='doClick(this);'></td></tr> //ค่าที่จะส่งไป 1................
<tr><td><input type="text" name="a2" onchange='doClick(this);'></td></tr> //ค่าที่จะส่งไป 2...............
</table>
</form>
</body>
</html>
<script>
// AJAX ÊÓËÃѺ¨Ñ´¡Òúѹ·Ö¡Å§°Ò¹¢éÍÁÙÅ
function Inint_AJAX() {
try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {}
try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {}
try { return new XMLHttpRequest(); } catch(e) {}
alert("XMLHttpRequest not supported");
return null;
}
// ¤ÓÊÑ觷Õè·ÓàÁ×èͤÅÔ¡»é͹¤èÒ TEXTBOX
function doClick() {
var req = Inint_AJAX();
// ตรงส่วนรับค่าจาก textbox จะรับยังไงหลายๆตัวคับ ----------------------------- ????
var a1 = document.getElementById('a1').value;
req.open('GET', 'purchase/save.php?a1='+a1, true);
req.onreadystatechange = function() {
if (req.readyState==4) {
if (req.status==200) {
var data=req.responseText;
//áÊ´§ error ¶éÒÁÕ
document.getElementById("status").innerHTML=data;
}
}
};
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"); // set Header
req.send(null);
}
</script>
---------------------------------------------------------------------------------------------------------------------------------------------------------
CODE :: save.php
<?
header("Expires: Sat, 1 Jan 2005 00:00:00 GMT");
header("Last-Modified: ".gmdate( "D, d M Y H:i:s")."GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
$host="kst2003";
$username="root";
$password="kst2000";
$dbname="kst2";
$table="sample";
// ตรงส่วนนี้ จะทำการบันทึกทีละค่าที่ส่งมา ----------------------????
$a1=$_GET['a1'];
$sql="insert into sample (topic) values('$a1')";
$connect= mysql_connect( $host, $username, $password) or die("------------");
$db=mysql_select_db($dbname) or die("------------");
$query=mysql_query($sql) or die("---------------");
mysql_close($connect);
?>
query += '&a2=' + document.getElementById('a2').value;
query += '&a3=' + document.getElementById('a3').value;
alert(query); // ลองเอาออกมาดู
req.open('GET', 'purchase/save.php?' + query, true); // ส่ง
ขอบคุณมากครับท่านอาจารย์
ส่วนตรง save ก็ต้องวนในการ insert ลง DB ใช่ไหมครับ ท่าอาจารย์..
เดี๋ยวผมจะลองทำตามคำแนะนำดูครับ