PlusMagi's Blog By Pitt Phunsanit Backend ส่งข้อมูลแบบ Ajax ด้วย JQuery

ส่งข้อมูลแบบ Ajax ด้วย JQuery

ในโลกของการพัฒนาเว็บสมัยใหม่ ประสบการณ์ผู้ใช้ (User Experience) คือหัวใจสำคัญ การส่งข้อมูลแบบดั้งเดิมผ่านการ Submit ฟอร์มจะทำให้เกิดการโหลดหน้าเพจใหม่ทั้งหมด (Full Page Reload) ซึ่งเป็นอุปสรรคต่อความลื่นไหลของเว็บไซต์

แนวคิดของ Asynchronous JavaScript and XML (AJAX) จึงเข้ามาแก้ไขปัญหานี้ โดยอนุญาตให้เราสามารถส่งและรับข้อมูลจากเซิร์ฟเวอร์ได้ในพื้นหลัง (Background) โดยไม่รบกวนการแสดงผลหน้าเว็บหลัก ทำให้เว็บไซต์มีความรวดเร็วและตอบสนองได้ดีเยี่ยม

💡 หลักการทำงาน: AJAX, jQuery และ PostgreSQL

การส่งข้อมูลแบบ AJAX ด้วย jQuery คือการใช้ JavaScript เพื่อดักจับเหตุการณ์การส่งฟอร์ม และใช้เมธอดของ jQuery เช่น $.post() หรือ $.ajax() ในการส่งข้อมูลไปยัง API Endpoint ของเซิร์ฟเวอร์ จากนั้นเซิร์ฟเวอร์จะทำหน้าที่เป็นตัวกลางในการรับข้อมูลและส่งต่อไปยังฐานข้อมูลหลักอย่าง PostgreSQL

Client-Side: การส่งข้อมูลด้วย jQuery

jQuery ช่วยให้การจัดการ DOM และการเรียกใช้ AJAX ทำได้ง่ายขึ้น เมื่อเราต้องการส่งข้อมูลจากฟอร์มโดยไม่โหลดหน้าใหม่ เราจะใช้ $('#myForm').serialize() เพื่อรวบรวมค่าทั้งหมดในฟอร์มให้เป็นรูปแบบ Query String และส่งไปยัง Endpoint ที่กำหนด

JavaScript

// 1. ดักจับเหตุการณ์การ Submit ฟอร์ม<br>$('#myForm').on('submit', function(e) {<br>  e.preventDefault(); // ป้องกันการโหลดหน้าใหม่<br>  var formData = $(this).serialize(); // รวบรวมข้อมูล<br>  <br>  // 2. ส่งข้อมูลไปยังเซิร์ฟเวอร์<br>  $.post('/api/submit-data', formData, function(response) {<br>    console.log('Success:', response);<br>    alert('ส่งข้อมูลสำเร็จ!');<br>  }).fail(function(xhr) {<br>    console.error('Error:', xhr.responseText);<br>    alert('เกิดข้อผิดพลาดในการส่งข้อมูล');<br>  });<br>});

Server-Side: การประมวลผลข้อมูลใน PostgreSQL

เมื่อเซิร์ฟเวอร์ได้รับข้อมูล (สมมติว่าข้อมูลที่ส่งมาเป็นรายการที่คั่นด้วยเครื่องหมายจุลภาค เช่น ‘apple,banana,orange’) หน้าที่ของ PostgreSQL คือการรับข้อมูลดิบนี้และแปลงให้เป็นโครงสร้างข้อมูลที่สามารถจัดเก็บในตารางได้อย่างถูกต้อง

เราสามารถใช้ฟังก์ชันของ PostgreSQL เช่น string_to_array() หรือ unnest() เพื่อแยกสตริงที่ถูกส่งมาให้เป็นแถวข้อมูล (Rows) ก่อนนำไปบันทึกในตาราง

SQL

-- สมมติว่าเราได้รับข้อมูลรายการสินค้าในรูปแบบ 'apple,banana,orange'<br>WITH raw_data AS (SELECT 'apple,banana,orange' AS item_list)<br>SELECT<br>    unnest(string_to_array(item_list, ',')) AS item_name<br>FROM raw_data;<br>

-- ตัวอย่างการ INSERT ข้อมูลที่ถูกแยกแล้ว<br>INSERT INTO product_logs (product_name, submitted_at)<br>SELECT<br>    item_name, NOW()<br>FROM raw_data<br>CROSS JOIN LATERAL unnest(string_to_array(item_list, ',')) AS item_name;<br>

✅ บทสรุป: การผสานพลังของ Full Stack

การใช้ AJAX ร่วมกับ jQuery ช่วยให้ส่วนหน้า (Front-end) มีประสบการณ์ผู้ใช้ที่เหนือกว่า ในขณะที่การใช้ PostgreSQL เข้ามาจัดการการรับและประมวลผลข้อมูลที่ซับซ้อน (เช่น การแยกรายการ) ทำให้ระบบหลังบ้าน (Back-end) มีความมั่นคงและยืดหยุ่นสูง การผสานเทคโนโลยีเหล่านี้เข้าด้วยกันจึงเป็นมาตรฐานของการพัฒนาเว็บแอปพลิเคชันระดับองค์กรในปัจจุบัน