|
|
|
เรื่องการส่งค่าของ ajax เพิ่งจะหัดใช้ ajax คะ คืองานที่หนูต้องทำคือสร้างฟอร์มรับข้อมูลจากผู้ใช้ |
|
|
|
|
|
|
|
ช่วยอธิบายหนูหน่อยยยยยยยย
|
|
|
|
|
Date :
2009-11-24 14:12:47 |
By :
miwawaa |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
https://www.thaicreate.com/tutorial/ajax-method-post.html ดูตัวอย่างจากนี้ครับ
ถ้าจะส่งข้อมูลมากกว่า 1 ชุดเพื่ออัพเดทในฐานข้อมูล ก็มี 2 วิธี (ที่นึกออก :>)
1. วนลูปก่อนแล้วส่งค่าที่ละชุด เพื่อไปอัพเดทฐานข้อมูล
2. ส่งค่าไปทั้งหมดเลยพร้อมบอกจำนวนชุด แล้วให้อีกฝั่งทำการอัพเดทข้อมูลทั้งหมดเอง
จะแสดงวิธีทำข้อ 2ให้ดูน่ะ
Code (PHP)
<script>
var param;
function insert(){ // ฟังก์ชันสร้าง parameters
var a=frm.elements['text']; //ค้นหา ชื่อ text ใน frm
param= "nums="+a.length; // สร้าง parameter โดยสิ่งแรกสร้างตัวแปรชุดจำนวนข้อมูลที่จะส่ง
for(var i=0; i<a.length ;i++){
param+='&val'+i+'='+a[i].value; // เพิ่มตัวแปรและค่าของตัวแปร
}
alert(param); // ลองดูค่า parameter ที่จะส่งไป
doCallAjax(); // เรียกใช้ฟังก์ชัน doCallAjax เพื่อจะส่งข้อมูล
}
var HttPRequest = false;
function doCallAjax() {
HttPRequest = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
HttPRequest = new XMLHttpRequest();
if (HttPRequest.overrideMimeType) {
HttPRequest.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!HttPRequest) {
alert('Cannot create XMLHTTP instance');
return false;
}
var url = 'next.php'; // url
//var pmeters = 'myName='+document.getElementById("txtName").value+'&my2='; // 2 Parameters
HttPRequest.open('POST',url,true); // ส่งแบบ post
HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HttPRequest.setRequestHeader("Content-length", param.length); // ส่งค่า parameter ไป
HttPRequest.setRequestHeader("Connection", "close");
HttPRequest.send(pmeters);
HttPRequest.onreadystatechange = function()
{
if(HttPRequest.readyState == 4) // Return Request
{
alert(HttPRequest.responseText); // แจ้งผล ถ้าไม่สำเร็จจะแสดงข้อความ การอัพเดทล้มเหลว ถ้าสำเร็จจะแสดงข้อความ "อัพเดทข้อมูลเรียบร้อย"
//document.getElementById("mySpan").innerHTML = HttPRequest.responseText;
}
}
/*
HttPRequest.onreadystatechange = call function .... // Call other function
*/
}
</script>
<form name='frm' >
<input type="text" name="text"> <!-- สมมติเจน มา 3 ชุด -->
<input type="text" name="text">
<input type="text" name="text">
<input type="button" onclick="insert()">
</form>
next.php(PHP)
<?php
include "connect.php"
$nums =$_POST[nums]; // รับค่า param ตัวแรกมาตัวแปร nums คือบอกจำนวนชุดที่จะอัพเดทลงฐานข้อมูล
for($i=0;$i<$nums;$i++){ // วนลูปเตรียมอัพเดทข้อมูลแต่ละชุด
$value = $_POST['val'.$i];
mysql_query("insert into tbl values ('$value')") or die("การอัพเดทข้อมูลล้มเหลว");
}
echo "อัพเดทข้อมูลเรียบร้อย";
?>
|
|
|
|
|
Date :
2009-11-24 15:25:23 |
By :
xbeginner01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// inputpage
<form>
<input type="text" name="name[]"> input 1
<input type="text" name="name[]"> input 2
<input type="text" name="name[]"> input 3
</form>
// actionpage
$name = $_POST['name'];
// อาจจะทดสอบค่า โดยใช้ print_r($name) จะทำให้เห็น ค่าที่ถูกส่งเข้ามาครับว่าเป็นอะไรบ้าง
// ค่าที่ได้ออกมาจะเป็น Arrray เรียงตาม value ที่อยู่ใน textfield ครับ
foreach($name as $value){
// to do
}
|
|
|
|
|
Date :
2009-11-25 02:00:11 |
By :
LindyFralin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|