Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

ส่งข้อมูลหลายค่าด้วย AJAX ใน PHP

สามารถส่งข้อมูลหลายค่าจาก 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 เอง