A-AA+then

ขอรบกวนเรื่อง ajax กับ textbox อีกรอบครับ

2,465

ขอโทษนะครับ รบกวนบ่อย พอดีมือใหม่จริงๆคับ ท่านอาจารย์ 

** ถ้าเรามี 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);
 
?>
 

2 ความคิดเห็น

var query = 'a1=' + document.getElementById('a1').value;
query += '&a2=' + document.getElementById('a2').value;
query += '&a3=' + document.getElementById('a3').value;
alert(query);// ลองเอาออกมาดู
req.open('GET', 'purchase/save.php?' + query, true); // ส่ง
1

ขอบคุณมากครับท่านอาจารย์


ส่วนตรง save ก็ต้องวนในการ insert ลง DB ใช่ไหมครับ ท่าอาจารย์..

เดี๋ยวผมจะลองทำตามคำแนะนำดูครับ

2
^