สามารถส่งข้อมูลหลายค่าจาก Client ไป Server ผ่าน AJAX ได้ 2 วิธีหลัก คือ JSON และ Form Data (POST ธรรมดา)
วิธีที่ 1: ส่งข้อมูลแบบ JSON (แนะนำสำหรับ API)
// JavaScript (Client-side)
var value1 = 1;
var value2 = 2;
var value3 = 3;
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "your_api_endpoint.php",
data: JSON.stringify({
data_1: value1,
data_2: value2,
data_3: value3
}),
success: function(result) {
console.log(result);
// จัดการผลลัพธ์ที่ได้
},
error: function(xhr, status, error) {
console.error("AJAX Error:", error);
}
});
PHP (Server-side) - รับข้อมูล JSON:
'Invalid JSON']);
exit;
}
$data1 = $data['data_1'] ?? null;
$data2 = $data['data_2'] ?? null;
$data3 = $data['data_3'] ?? null;
// ประมวลผล...
echo json_encode(['success' => true, 'received' => $data]);
?>
วิธีที่ 2: ส่งแบบ Form Data (application/x-www-form-urlencoded)
// JavaScript - ใช้ serialize() จาก Form
$.ajax({
type: "POST",
url: $("#myForm").attr("action"),
data: $("#myForm").serialize(),
success: function(result) {
// จัดการผลลัพธ์
}
});
PHP - รับข้อมูล Form Data:
true, 'id' => $id, 'user_id' => $userId]);
?>
วิธีที่ 3: ส่ง Object โดยตรง (jQuery จะแปลงเป็น Form Data ให้อัตโนมัติ)
$.ajax({
type: 'POST',
url: '/ajaxload.php',
data: {
id: 10,
user_id: 1
},
success: function(html) {
$('#show_more_main' + 10).remove();
$('.post_list').append(html);
}
});
เปรียบเทียบวิธีการส่ง
| วิธี | Content-Type | เหมาะสำหรับ | ข้อดี |
|---|---|---|---|
| JSON | application/json | REST API, ข้อมูลซ้อนกัน (Nested) | รองรับโครงสร้างซับซ้อน, มาตรฐาน API |
| Form Data | application/x-www-form-urlencoded | Form ธรรมดา, ข้อมูลเรียบง่าย | รองรับโดย PHP $_POST อัตโนมัติ, เรียบง่าย |
| FormData Object | multipart/form-data | มีไฟล์แนบ (File Upload) | รองรับไฟล์, ไม่ต้องตั้ง Content-Type เอง |