การรับค่าจากแบบฟอร์มนั้น PHP จะใช้ตัวแปรอยู่ 3 แบบด้วยกัน คือ
$_GET, $_POST, $_REQUEST ซึ่งแต่ละแบบจะมีการส่งค่าดังนี้
1. $_GET จะส่งค่าผ่าน URL เราจะเห็นพารามิเตอร์ที่ส่งไปต่อท้าย URL ของหน้านั้นๆ
2. $_POST จะส่งแบบไม่แสดงพารามิเตอร์ให้เห็นส่วนใหญ่จะใช้กับการส่งค่าใน HTML FORM
3. $_REQUEST จะเป็นตัวแปรที่ใช้รับค่าได้ทั้งที่ส่งมาแบบ $_GET และ $_POST
สำหรับขั้นตอนการค้นหาข้อมูลเพื่อนำมาทดสอบ เราจะใช้คีย์เวิร์ดดังนี้
เข้าไปที่เว็บไซต์ www.google.co.th แล้วค้นหาคำว่า "php การรับค่า ฟอร์ม"
จากนั้นก็ลองนำซอร์สโค๊ดตัวอย่างมาทดลองดูว่าได้ผลอย่างไรบ้างและแตกต่างกันอย่างไร
การส่งค่าผ่าน HTML FORM และ เมนูลิงค์ต่างๆ
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>ทดสอบ การรับค่าผ่านฟอร์ม คำนวณพื้นที่สี่เหลี่ยม</title>
</head>
<body>
| <a href="form-request.php?id=2">ส่งค่าแบบคลิกลิงค์ ไอดี 2</a> |
<a href="form-request.php?id=3">ส่งค่าแบบคลิกลิงค์ ไอดี 3</a> |
<a href="form-request.php?id=4&nickname=Hello World">ส่งค่าแบบคลิกลิงค์ ไอดี 4 & nickname</a> |
<br/>
<form action="form-request.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
<?php
header('Content-Type: text/html; charset=utf-8');
$get_id = isset($_GET['id']) ? $_GET['id'] : 0;
$post_id = isset($_POST['id']) ? $_POST['id'] : 0;
$request_id = isset($_REQUEST['id']) ? $_REQUEST['id'] : 0;
$get_nickname = isset($_GET['nickname']) ? $_GET['nickname'] : '-';
$post_nickname = isset($_POST['nickname']) ? $_POST['nickname'] : '-';
$request_nickname = isset($_REQUEST['nickname']) ? $_REQUEST['nickname'] : '-';
$get_telephone = isset($_GET['telephone']) ? $_GET['telephone'] : 0;
$post_telephone = isset($_POST['telephone']) ? $_POST['telephone'] : 0;
$request_telephone = isset($_REQUEST['telephone']) ? $_REQUEST['telephone'] : 0;
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, " *จะส่ง GET หรือ POST ก็รับค่าได้ \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, " *จะส่ง GET หรือ POST ก็รับค่าได้\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, " *จะส่ง GET หรือ POST ก็รับค่าได้\n";
echo '</pre>';
echo '--------------------------------------------------------------------';
echo '</div>';
?>
ความคิดเห็น
แสดงความคิดเห็น