บทที่ 16 HTML Forms   
  HTML Forms คือการสร้างฟอร์มใน html โดยฟอร์มที่ได้จะถูกใช้ในการส่งข้อมูลไปยังเซิฟเวอร์ แท็กที่ใช้ในการสร้างฟอร์มคือ แท็ก <form>
  ฟอร์มประกอบด้วยแท็ก input เช่น กรอบข้อความ (text fields), กล่องแบบเลือก (checkboxes),ปุ่มต่าง ๆ เป็นต้น โดยเราสามารถใส่รายการ, กรอบข้อความ(textarea), ฟิล์ดเซท (fieldset), เลเจนด์(legend) และแท็ก label  ซึ่งเราจะใช้แท็ก input ใช้ในการเก็บข้อมูลจากผู้ใช้งาน โดย แท็ก input สามารถสร้างได้หลายแบบ ขึ้นอยู่กับแอตทริบิวต์ type ดังนั้นแท็ก input สามารถเป็นกรอบข้อความ, กล่องตัวเลือก, กล่องรหัสผ่าน, ปุ่มส่งข้อมูล และ อื่น ๆ ซึ่งแท็ก input ที่ใช้บ่อย ๆ จะอธิบายต่อไป 
   1. กรอบข้อความ (Text fields)
    แท็ก input และแอตทริบิวต์ type="text" จะกำหนดการป้อนข้อความ 1 บรรทัด
ตัวอย่าง

<html>
<body>

<form>
ชื่อ: <input type="text" name="firstname"><br>
นามสกุล: <input type="text" name="lastname">
</form> 

</body>
</html>

ผลลัพธ์ที่ได้คือ

***แท็ก form จะไม่แสดงในเว็บเบราว์เซอร์ และขนาดของกรอบข้อความเริ่มต้นจะมีขนาด 20 ตัวอักษร
  
   2. กรอบรหัสผ่าน (Password fields)
   แท็ก input และแอตทริบิวต์ type="password" จะกำหนดการป้อนรหัสผ่าน
ตัวอย่าง

<html>
<body>

<form>
รหัสผ่าน: <input type="password" name="pwd">
</form> 

</body>
</html>

ผลลัพธืที่ได้คือ

***ตัวอักษรในกรอบรหัสผ่านจะแสดงเป็นดาวหรือจุด

   3. กล่องเลือกทางเดียว (Radio Buttons)
   แท็ก input และแอตทริบิวต์ type="radio" จะกำหนดกล่องเลือกแบบทางเดียว ซึ่งจะกำหนดให้ผู้ใช้งานสามารถได้เพียงตัวเลือกเดียวจากชุดของตัวเลือกทั้งหมด
ตัวอย่าง

<html>
<body>

<form>
<input type="radio" name="like" value="like">ชอบ<br>
<input type="radio" name="like" value="don'tlike">ไม่ชอบ
</form> 

</body>
</html>

ผลลัพธ์คือ

***จะเห็นว่าแอตทริบิวต์ name เป็นชื่อเดียวกัน เป็นการกำหนดให้กล่องเลือกแบบทางเดียวทั้งสองอันเป็นกล่องชุดเดียวกัน ดังนั้น ถ้ากำหนดแอตทริบิวต์ name แตกต่างกัน จะทำให้สามารถเลือกได้ทั้งสองอัน

   4. กล่องเลือกแบบหลายทาง (Check boxes)
   แท็ก input และแอตทริบิวต์ type="checkbox" จะกำหนดกล่องเลือกแบบหลายทาง ซึ่งผู้ใช้งานสามารถเลือกตัวเลือกได้มากกว่าหนึ่งตัวเลือกจากตัวเลือกทั้งหมด
ตัวอย่าง

<html>
<body>

<form>
<input type="checkbox" name="language" value="japanese">พูดภาษาญี่ปุ่นได้<br>
<input type="checkbox" name="language" value="english">พูดภาษาอังกฤษได้
</form> 

</body>
</html>

ผลลัพธ์ที่ได้คือ


   5. ปุ่มส่งข้อมูล (Submit Button)
   แท็ก input และแอตทริบิวต์ type="submit" จะกำหนดปุ่นสำหรับส่งข้อมูลไปยังเซิฟเวอร์ โดยข้อมูลจะส่งไปยังไฟล์ที่กำหนดในแอตทริบิวต์ action และไฟล์ที่ทำการรับข้อมูลจากฟอร์มนี้ จะทำบางสิ่งบางอย่างกับข้อมูลที่รับเข้าไป โดยมีวิธีการส่ง 2 แบบด้วยกัน (ผ่านแอตทริบิวต์ method)
    >>get - จะส่งข้อมูลเป็นข้อความต่อท้ายชื่อไฟล์ ซึ่งจะเห็นใน url ของเว็บเบราว์เซอร์
    >>post - จะส่งข้อมูลแบบซ่อนผ่านทางเบราว์เซอร์ซึ่งมีความปลอดภัยมากกว่า

<html>
<body>

<form name="login" action="login.php" method="post">

ชื่อ :<input type="text" name="username"/>
รหัสผ่าน :<input type="passwordt" name="pwd"/>
<input type="submit" value="เข้าระบบ"/>

</form>  

</body>
</html>

ผลลัพธ์ที่ได้คือ

Tag ที่เกี่ยวข้อง

<form> กำหนดฟอร์มเพื่อส่งข้อมูลไปยังเซิร์ฟเวอร์
<input/> กำหนดการป้อนข้อมูล
<textarea> กำหนดการป้อนข้อความแบบหลายบรรทัด
<label> กำหนดป้ายชื่อแท็ก input
<fieldset> กำหนดขอบเขตของการป้อนข้อมูล
<legend> กำหนดป้ายชื่อสำหรับขอบเขตของการป้อนข้อมูล(fieldset)
<select> กำหนดรายการที่ให้เลือก(แบบ Drop-down)
<optgroup> กำหนดกลุ่มของตัวเลือก(options) ที่เกี่ยวข้องในรายการที่ให้เลือก
<option> กำหนดตัวเลือกสำหรับรายการที่ให้เลือก
<button> กำหนดปุ่มกด

 นอกจากสร้างฟอร์ม POST ด้วย HTML แล้วเรายังสามารถใช้ Javascript ในการ POST ค่าจะฟอร์มไปที่ ฝั่ง Server ได้ Post Form ด้วย javascript เพื่อส่งข้อมูลให้ FastAPI

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ใน textbox บล็อกไม่ให้ key อักษรอื่นๆนอกจากตัวเลข
โดย jataz2 อ 22 ก.พ. 2011 2:57 pm บอร์ด Programming - C/C++ & java & Python
0
1419
อ 22 ก.พ. 2011 2:57 pm โดย jataz2 View Topic ใน textbox บล็อกไม่ให้ key อักษรอื่นๆนอกจากตัวเลข
C# filter ข้อมูลใน DataTable ด้วย DataTable.Select()
โดย jataz2 อ 22 ก.พ. 2011 2:54 pm บอร์ด Programming - C/C++ & java & Python
0
6284
อ 22 ก.พ. 2011 2:54 pm โดย jataz2 View Topic C# filter ข้อมูลใน DataTable ด้วย DataTable.Select()
C# เเก้ปัญหาเมื่อ PostBack เเล้วไม่จำตำเเหน่งที่เรา shcollbar ไปเเล้ว
โดย jataz2 อ 22 ก.พ. 2011 2:52 pm บอร์ด Programming - C/C++ & java & Python
0
1197
อ 22 ก.พ. 2011 2:52 pm โดย jataz2 View Topic C# เเก้ปัญหาเมื่อ PostBack เเล้วไม่จำตำเเหน่งที่เรา shcollbar ไปเเล้ว
กำหนด print area ใน javascript print
โดย jataz2 อ 22 ก.พ. 2011 2:50 pm บอร์ด AJAX Javascript Library - jQuery
1
12463
พ 08 มิ.ย. 2011 12:56 am โดย Watto View Topic กำหนด print area ใน javascript print
เปิด page ขึ้นมาเเล้วโชว์ ballon ทันที
โดย jataz2 อ 22 ก.พ. 2011 12:06 pm บอร์ด AJAX Javascript Library - jQuery
0
6168
อ 22 ก.พ. 2011 12:06 pm โดย jataz2 View Topic เปิด page ขึ้นมาเเล้วโชว์ ballon ทันที
ข้อคำแนะนำครับ เรื่องการสร้างแบบฟอร์มและreport
โดย sofar01 อ 22 ก.พ. 2011 9:42 am บอร์ด Programming - PHP
4
3720
พฤ 10 มี.ค. 2011 2:28 pm โดย touleg View Topic ข้อคำแนะนำครับ เรื่องการสร้างแบบฟอร์มและreport
รับสมัคร PHP Programmer / Web Master
โดย Anonymous จ 21 ก.พ. 2011 10:57 pm บอร์ด MindPHP News & Feedback
0
867
จ 21 ก.พ. 2011 10:57 pm โดย บุคคลทั่วไป View Topic รับสมัคร PHP Programmer / Web Master
ใส่รายละเอียดของฐานข้อมูลแล้วเป็นแบบนี้ ติดตั้ง Joomla Mysql
โดย fogusmobile จ 21 ก.พ. 2011 9:25 pm บอร์ด สอบถามปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
2
1332
อ 22 ก.พ. 2011 12:53 am โดย mindphp View Topic ใส่รายละเอียดของฐานข้อมูลแล้วเป็นแบบนี้ ติดตั้ง Joomla Mysql