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

วิธีสร้างฟอร์ม HTML: คู่มือฉบับสมบูรณ์

ฟอร์ม HTML รวบรวมข้อมูลจากผู้ใช้ด้วยช่องข้อความ, รายการแบบเลื่อนลง, ช่องเครื่องหมาย, และอื่นๆ ฟอร์มอยู่ภายในแท็ก <form> และใช้แท็ก <input> สร้างองค์ประกอบต่างๆ


ฟอร์ม HTML ให้ผู้ใช้โต้ตอบกับเว็บไซต์/แอปพลิเคชัน ส่งข้อมูลเพื่อประมวลผลและจัดเก็บ

บทช่วยสอนนี้จะตอบคำถาม "สร้างฟอร์มใน HTML ยังไง?" พร้อมตัวอย่างครอบคลุมพื้นฐานฟอร์ม, การเพิ่มช่องกรอกข้อมูล, และการส่งข้อมูลไปเซิร์ฟเวอร์

ฟอร์ม HTML

ใน HTML ฟอร์ม ประกอบด้วยเอลิเมนต์ 1 ตัวขึ้นไป รวมถึง:

  • ช่องข้อความบรรทัดเดียว
  • กล่องข้อความ
  • กล่องรายการแบบเลื่อนลง
  • ช่องเครื่องหมาย (checkboxes)
  • ปุ่ม
  • ปุ่มตัวเลือก (radio buttons)

องค์ประกอบเหล่านี้ (ยกเว้นปุ่มและกล่องข้อความ) ใช้แท็ก <input>

หลังผู้ใช้ส่งฟอร์ม เนื้อหาสามารถ:

  • ส่งไปเซิร์ฟเวอร์เพื่อประมวลผลต่อ
  • ประมวลผลโดยเบราว์เซอร์

ก่อนสร้างฟอร์ม ควรคิดถึงการออกแบบ: ต้องเก็บข้อมูลอะไร? จะทำให้ฟอร์มเรียบง่ายอย่างไร? ฟอร์มใหญ่เกินไปจะทำให้ผู้ใช้น่าจะไม่กรอก

สำหรับบทช่วยสอนนี้ เราจะสร้างฟอร์มสำหรับเว็บไซต์ร้านกาแฟ "Three Brothers Coffee House" ฟอร์มรับข้อมูล 4 อย่าง:

  • ชื่อ ผู้ใช้
  • อีเมล ผู้ใช้
  • ว่าผู้ใช้เคย มาเยือน ร้านหรือไม่
  • ข้อความ ที่ผู้ใช้ต้องการส่ง

ฟอร์มต้องมี 4 องค์ประกอบ และปุ่มส่ง (submit) 1 ปุ่ม

แท็ก <form> ใน HTML

ฟอร์มใน HTML อยู่ภายในแท็ก <form> ตัวอย่าง:

<form> // องค์ประกอบต่างๆ </form>

แท็ก <form> กำหนดฟอร์มใน HTML ภายในสามารถใส่องค์ประกอบฟอร์ม เช่น checkbox, ช่องข้อความบรรทัดเดียว แท็ก <form> รับแอตทริบิวต์ 2 ตัว: action และ method (จะอธิบายต่อไป)

องค์ประกอบ <input> สำหรับฟอร์ม HTML

คอนโทรลฟอร์มส่วนใหญ่ใช้ อินพุตเอลิเมนต์ รวบรวมข้อมูลประเภทต่างๆ จากผู้ใช้ กำหนดด้วยแท็ก <input>

รูปแบบของ <input> ขึ้นอยู่กับแอตทริบิวต์ type เช่น type="text" จะแตกต่างจาก type="radio"

ไวยากรณ์ <input>:

<input type="type" id="elementId">

type คือประเภทอินพุต ค่าที่พบบ่อย:

  • button
  • checkbox
  • email
  • text
  • number
  • radio

id ใช้ระบุตัวตนเฉพาะของอินพุต ใช้เข้าถึงข้อมูลที่ผู้ใช้ส่งผ่านสคริปต์ประมวลผล

กลับไปที่ Three Brothers Coffee House ฟอร์มต้องรับ 4 ข้อมูล 2 อย่างแรกคือชื่อและอีเมล ใช้ 2 แท็ก <input>:

<form> <label for="name">Name:</label><br/> <input type="text" id="name" name="name"><br /><br /> <label for="email">Email:</label><br/> <input type="email" id="email" name="email"> </form>

คลิกปุ่ม วิธีสร้างฟอร์ม HTML: คู่มือฉบับสมบูรณ์ ในเอดิเตอร์เพื่อรันโค้ด

ฟอร์มรับค่า 2 ค่า: ชื่อและอีเมล ใช้ <label> (จะอธิบายต่อไป)

แอตทริบิวต์ name ในฟอร์ม HTML

ทุกองค์ประกอบฟอร์มต้องมีแอตทริบิวต์ name ใช้ส่งเนื้อหาฟอร์ม หากไม่ระบุ ข้อมูลจะไม่ถูกส่งไปเซิร์ฟเวอร์

ในตัวอย่าง ช่อง "Name" มี name="name"> และ "Email" มี name="email">

เอลิเมนต์ <label> ใน HTML

ใช้ <label> เพิ่มฉลากให้แต่ละช่องในฟอร์ม ระบุวัตถุประสงค์และข้อมูลที่รับ รวมถึงข้อความที่โปรแกรมอ่านหน้าจอ (screen reader) จะอ่านเมื่อเจอช่องอินพุต

ไวยากรณ์ <label>:

<form> <label for="name">Name:</label><br/> <input type="text" id="name" name="name"> </form>

สร้างฟอร์มรับชื่อ ใช้ <label> ฉลาก "Name:" แอตทริบิวต์ for ต้องเท่ากับ id ของอินพุตที่เกี่ยวข้อง เพื่อผูกฉลากกับช่องกรอก

องค์ประกอบฟอร์ม HTML

กลับไปที่ Three Brothers Coffee House ต้องการ 4 ข้อมูล: ชื่อ, อีเมล, สถานะลูกค้า, ข้อความ สร้าง 2 ช่องแล้ว (ชื่อ, อีเมล) มาสร้างส่วนที่เหลือกัน

ปุ่มตัวเลือก (Radio Buttons)

ปุ่มตัวเลือกใช้บ่อยในฟอร์ม HTML ให้ผู้ใช้เลือก 1 ค่าจากจำนวนจำกัด ใช้สำหรับเพศ, ช่วงอายุ, หรือตอบใช่/ไม่

ไวยากรณ์:

<input type="radio" name="radio_button">

ฟอร์มเราต้องการถามว่าผู้ใช้เป็นลูกค้าร้าน Three Brothers หรือไม่ ใช้ radio button:

<form> <p>Are you a customer of the Three Brothers Coffee House?</p> <input type="radio" id="yes" name="customer" value="yes"> <label for="yes">Yes</label><br /> <input type="radio" id="no" name="customer" value="no"> <label for="no">No</label><br /> </form>

คลิกปุ่ม วิธีสร้างฟอร์ม HTML: คู่มือฉบับสมบูรณ์ เพื่อรันโค้ด

ผู้ใช้ส่งค่า yes หรือ no แยกวิเคราะห์: สร้าง <form>, <p> ข้อความอธิบาย, radio button ค่า yes พร้อมฉลาก "Yes", radio button ค่า no พร้อมฉลาก "No" แอตทริบิวต์ value คือข้อมูลที่ส่งไปเซิร์ฟเวอร์เมื่อผู้ใช้กดส่ง

เอลิเมนต์ <textarea> ใน HTML

เหลือช่องกรอกข้อความ (message) ใช้ <textarea>:

<form> <label for="message">Message:</label><br /> <textarea id="message" name="message"> What message do you want to send to the Three Brothers Coffee House? </textarea> </form>

สร้างฉลาก "Message:" แล้ว <textarea> พร้อมแอตทริบิวต์:

  1. id อ้างอิงเนื้อหาหลังผู้ใช้ส่ง
  2. name จำเป็นต้องมีเพื่อส่งฟอร์ม

ข้อความเริ่มต้น "What message do you want to send to the Three Brothers Coffee House?" วางระหว่างแท็กเปิด/ปิด <textarea>

ผลลัพธ์:

คลิกปุ่ม วิธีสร้างฟอร์ม HTML: คู่มือฉบับสมบูรณ์ เพื่อรันโค้ด

ตอนนี้มีช่องข้อความ ให้ผู้ใช้ส่งข้อความไปร้านกาแฟ

ปุ่ม submit ใน HTML

พร้อมเพิ่มปุ่ม submit ไวยากรณ์:

<input type="submit" value="Submit">

ปุ่ม submit ส่งเนื้อหาฟอร์มไปยัง form handler (หน้าบนเซิร์ฟเวอร์ที่ประมวลผล) ผ่านแอตทริบิวต์ action ของ <form>

เพิ่มปุ่ม submit ให้ฟอร์มร้านกาแฟ:

<form action="/post.php"> <label for="name">Name:</label> <br/> <input type="text" id="name" name="name"> <br /> <br /> <label for="email">Email:</label> <br /> <input type="email" id="email" name="email"> <br /> <p>Are you a customer of the Three Brothers Coffee House?</p> <input type="radio" id="yes" name="customer" value="yes"> <label for="yes">Yes</label> <br /> <input type="radio" id="no" name="customer" value="no"> <label for="no">No</label> <br /><br /> <label for="message">Message:</label><br /> <textarea id="message" name="message"> What message do you want to send to the Three Brothers Coffee House? </textarea> <input type="submit" value="Submit"> </form>

เพิ่มปุ่ม submit และระบุ action ใน <form> ลิงก์ไปไฟล์จัดการฟอร์ม

การส่งฟอร์มเว็บ

หลังสร้างฟอร์ม ต้องสร้าง handler ประมวลผลข้อมูล <form> มี 2 แอตทริบิวต์ส่งข้อมูล: action และ method

แอตทริบิวต์ action ของฟอร์ม

action กำหนดตำแหน่งโค้ด form handler เมื่อส่งฟอร์ม (กดปุ่ม submit) ข้อมูลจะไปที่ handler

ตัวอย่าง ข้อมูลส่งไป post.php:

<form action="/post.php"> </form>

หากไม่ระบุ action ฟอร์มจะส่งไปหน้าปัจจุบัน

แอตทริบิวต์ method ของฟอร์ม

method ระบุ HTTP method ใช้ส่งฟอร์ม ค่าเริ่มต้นคือ GET แต่ใช้ POST หรือ method อื่นได้

ตัวอย่าง:

<form action="/post.php" method="POST"> </form>

ส่งข้อมูลด้วย HTTP POST (หากต้องการ GET ระบุ "GET" หรือเว้นว่าง เพราะเป็นค่าเริ่มต้น)

ส่วนใหญ่ควรใช้ HTTP POST เพราะ GET ทำให้ข้อมูลฟอร์มมองเห็นได้ใน address bar เช่น /post.php?name=Pauline วิธีนี้ไม่ปลอดภะ ไม่ควรใช้ GET สำหรับข้อมูลละเอียดอ่อน



สรุป

ฟอร์มเป็นฟีเจอร์สำคัญของ HTML รวบรวมและประมวลผลข้อมูลผู้ใช้

บทช่วยสอนนี้อธิบายพื้นฐานฟอร์ม HTML และวิธีสร้างฟอร์มเว็บแรก ตอนนี้คุณพร้อมออกแบบและพัฒนาฟอร์ม HTML อย่างมืออาชีพแล้ว!