การรับค่าจากแบบฟอร์มนั้น PHP จะใช้ตัวแปรอยู่ 3 แบบด้วยกันคือ $_GET, $_POST, $_REQUEST ซึ่งแต่ละแบบจะมีการส่งค่าดังนี้
1. สังเกตว่า test.php?id=5 มีการส่งค่าแปร id ที่อยู่ต่อท้ายเครื่องหมาย ? มาด้วย ซึ่งข้อมูลหลังเครื่องหมายนี้จะรับค่าเป็นตัวแปร $_GET
2. ส่วนข้อมูลในแบบฟอร์มที่ให้กรอก เรากำหนดให้ METHOD ของ FORM เป็นแบบ POST ดังนั้นค่าที่ส่งมาจึงไม่ปรากฏใน URL ด้านหลัง ?
3. สำหรับตัวแปรที่ 3 $_REQUEST สามารถรับค่าได้ทั้งแบบส่งมาแบบ GET และ POST
1. $_GET จะส่งค่าผ่าน URL เราจะเห็นพารามิเตอร์ที่ส่งไปต่อท้าย URL ของหน้านั้นๆ
2. $_POST จะส่งแบบไม่แสดงพารามิเตอร์ให้เห็น
3. $_REQUEST จะเป็นตัวแปรที่ใช้รับค่าทั้งที่ส่งมาแบบ $_GET และ $_POST
สำหรับขั้นตอนการค้นหาข้อมูลเพื่อนำมาทดสอบ เราจะใช้คีย์เวิร์ดดังนี้
เข้าไปที่เว็บไซต์ www.google.co.th แล้วค้นหาคำว่า "php การรับค่า ฟอร์ม"
จากนั้นก็ลองนำซอร์สโค๊ดตัวอย่างมาทดลองดูว่าได้ผลอย่างไรบ้างและแตกต่างกันอย่างไร
form.html
test.php<html> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> <title>ทดสอบ การรับค่าผ่านฟอร์ม คำนวณพื้นที่สี่เหลี่ยม</title> </head> <body> <form action="test.php?id=5" method="post" name="frm_data"> <table width="500"> <caption><h3>ทดสอบ การรับ-ส่งค่าผ่านฟอร์ม</h3></caption> <tr> <td align="right">ชื่อเล่น :</td><td><input name="nickname" type="text" /></td> </tr> <tr> <td align="right"> เบอร์โทร :</td><td><input name="telephone" type="text" /></td> </tr> <tr> </td><td><td><input name="but_submit" type="submit" value="ส่งค่า" /></td> </tr> </form> </body> </html>
<?php echo '<div style="font-size:14px">'; echo '--------------------------------------------------------------------'; echo '<pre>'; echo '<b>แสดงค่าตัวแปร id</b>', "\n"; echo '$_GET[\'id\'] = ', $_GET['id'], "\n"; echo '$_POST[\'id\'] = ', $_POST['id'], "\n"; echo '$_REQUEST[\'id\'] = ', $_REQUEST['id'], "\n"; echo '</pre>'; echo '--------------------------------------------------------------------'; echo '<pre>'; echo '<b>แสดงค่าตัวแปร nickname</b>', "\n"; echo '$_GET[\'nickname\'] = ', $_GET['nickname'], "\n"; echo '$_POST[\'nickname\'] = ', $_POST['nickname'], "\n"; echo '$_REQUEST[\'nickname\'] = ', $_REQUEST['nickname'], "\n"; echo '</pre>'; echo '--------------------------------------------------------------------'; echo '<pre>'; echo '<b>แสดงค่าตัวแปร telephone</b>', "\n"; echo '$_GET[\'telephone\'] = ', $_GET['telephone'], "\n"; echo '$_POST[\'telephone\'] = ', $_POST['telephone'], "\n"; echo '$_REQUEST[\'telephone\'] = ', $_REQUEST['telephone'], "\n"; echo '</pre>'; echo '--------------------------------------------------------------------'; echo '</div>'; ?>
1. สังเกตว่า test.php?id=5 มีการส่งค่าแปร id ที่อยู่ต่อท้ายเครื่องหมาย ? มาด้วย ซึ่งข้อมูลหลังเครื่องหมายนี้จะรับค่าเป็นตัวแปร $_GET
2. ส่วนข้อมูลในแบบฟอร์มที่ให้กรอก เรากำหนดให้ METHOD ของ FORM เป็นแบบ POST ดังนั้นค่าที่ส่งมาจึงไม่ปรากฏใน URL ด้านหลัง ?
3. สำหรับตัวแปรที่ 3 $_REQUEST สามารถรับค่าได้ทั้งแบบส่งมาแบบ GET และ POST
"PHP ไม่ได้สร้างสุดยอดโปรแกรม แต่ PHP ช่วยให้งานคุณง่ายขึ้นต่างหาก"
PHP CI MANIA - PHP Code Generator
โปรแกรมช่วยสร้างโค้ด ลดเวลาการเขียนโปรแกรม
ความคิดเห็น
แสดงความคิดเห็น