ข้ามไปที่เนื้อหาหลัก

การรับตัวแปรจากแบบฟอร์ม ส่งค่าไปยังไฟล์ PHP

การรับค่าจากแบบฟอร์มนั้น PHP จะใช้ตัวแปรอยู่ 3 แบบด้วยกันคือ $_GET, $_POST, $_REQUEST ซึ่งแต่ละแบบจะมีการส่งค่าดังนี้

1. $_GET จะส่งค่าผ่าน URL เราจะเห็นพารามิเตอร์ที่ส่งไปต่อท้าย URL ของหน้านั้นๆ
2. $_POST จะส่งแบบไม่แสดงพารามิเตอร์ให้เห็น 
3. $_REQUEST จะเป็นตัวแปรที่ใช้รับค่าทั้งที่ส่งมาแบบ $_GET และ $_POST


สำหรับขั้นตอนการค้นหาข้อมูลเพื่อนำมาทดสอบ เราจะใช้คีย์เวิร์ดดังนี้ 
เข้าไปที่เว็บไซต์ www.google.co.th แล้วค้นหาคำว่า "php การรับค่า ฟอร์ม"



จากนั้นก็ลองนำซอร์สโค๊ดตัวอย่างมาทดลองดูว่าได้ผลอย่างไรบ้างและแตกต่างกันอย่างไร
form.html
<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>
test.php
<?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>';
?>
การรับตัวแปรจากแบบฟอร์ม ส่งค่าไปยังไฟล์ PHP


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 
โปรแกรมช่วยสร้างโค้ด ลดเวลาการเขียนโปรแกรม

สนใจสั่งซื้อเพียง 4,500 บาท
http://fastcoding.phpcodemania.com/

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

แจกฟรี!! ระบบต่างๆที่พัฒนาด้วย PHP สำหรับนำไปใช้ในงานต่างๆ

       สำหรับหลายท่านที่ขอโค้ดเข้ามาทาง Inbox ของเฟซบุ๊กแฟนเพจ หรือถามถึงระบบต่างๆหลังไมค์มานั้น ส่วนใหญ่ก็มีแจกอยู่แล้วในเว็บบอร์ด ThaiCreate.Com นะครับ และด้านล่างนี้ก็เป็นระบบต่างๆที่แจกให้นำไปลองใช้ลองศึกษากันครับ

สอนเขียน PHP แสดงการจองห้องประชุมแบบไฮไลท์ตามช่วงเวลา (แบบเชื่อมต่อฐานข้อมูล MySQL)

ตัวอย่าง ผลลัพธ์ที่ได้จากการจองในฐานข้อมูล ตาราง tb_room สร้างตารางรายชื่อห้องประชุม สำหรับ id นั้นเป็น Primarykey จะกำหนดให้สร้างอัตโนมัติ ทุกครั้งที่เราเพิ่มชื่อห้องประชุมใหม่ -- -- Database: `tobedev_example` -- -- -------------------------------------------------------- -- -- Table structure for table `tb_room` -- CREATE TABLE IF NOT EXISTS `tb_room` (   `id` int(11) NOT NULL,   `name` varchar(30) NOT NULL ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; -- -- Dumping data for table `tb_room` -- INSERT INTO `tb_room` (`id`, `name`) VALUES (1, 'ห้องประชุม 1'), (2, 'ห้องประชุม 2'), (3, 'ห้องประชุม 3'), (4, 'ห้องประชุม 4'), (5, 'ห้องประชุม 5'); -- -- Indexes for dumped tables -- -- -- Indexes for table `tb_room` -- ALTER TABLE `tb_room`   ADD PRIMARY KEY (`id`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `tb_room` -- ALTER TABLE `tb_room`   MODIFY `i...

การดึงข้อมูล MySQL มาแสดงในปฏิทิน Fullcalendar ด้วย PHP

หลักการทำงาน เรียกข้อมูลจากตาราง tb_event ด้วยฟังก์ชั่นของ MySQLi ข้อมูลจากฐานข้อมูลจะถูกวนลูปเก็บไว้ใน $data และจะถูกส่งไปที่ Fullcalendar ด้วยการแปลงข้อมูลจาก PHP ให้อยู่ในรูปแบบ JSON อาร์เรย์ด้วยฟังก์ชั่น json_encode() PHP Code <?php //Database $data = array(); $link = mysqli_connect("127.0.0.1", "tobedev", "1234", "tobedev_example"); mysqli_set_charset($link, 'utf8'); if (!$link) {     echo "Error: Unable to connect to MySQL." . PHP_EOL;     echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;     echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;     exit; } $query = "SELECT * FROM tb_event"; if ($result = $link->query($query)) {     /* fetch object array */     while ($obj = $result->fetch_object()) {        $data[] = array(                 ...