PHP Get ($_GET,$HTTP_GET_VARS) เป็นรูปแบบการอ่านค่าตัวแปรจาก URL ที่ตามด้วยเครื่องหมาย ?var=value
รูปแบบนี้เป็นการส่งมาจากลิ้งค์ หรือ มาจาก Form ภายใต้ Method get สามารถเลือกใช้ $_GET,$HTTP_GET_VARS แต่นิยมใช้ชื่อย่อแบบ $_GET[“var”] มากกว่าสามารถใช้ได้ทั้ง Register_Global = On หรือ Off
Syntax
<?php page.php?var=value $_GET["var"]; ?>
ส่งค่าผ่าน URL
1.html
<a href="2.php?Name=xxx&SiteName=vir9.Com">Test $_GET</a>
2.php
<?php echo $_GET["Name"]."<br>"; echo $_GET["SiteName"]."<br>"; ?>
จะแสดง
xxx
vir9.Com
ส่งค่าผ่าน Form Method Get
3.php
<form action="4.php" method="get" name="form1"> Name <input name="txtName" type="text"> SiteName <input name="txtSiteName" type="text"> <input type="submit" name="Submit" value="Submit"> </form>
4.php
<?php echo $_SERVER["REQUEST_URI"]."<br>"; // URL echo "<hr>"; echo $_GET["txtName"]."<br>"; // Get txtName echo $_GET["txtSiteName"]."<br>"; // Get txtSiteName echo "<hr>"; foreach($_GET as $key => $val) // Get All Key & Value { echo $key . " : " . $val . "<br>"; } ?>
มันก็จะแสดงค่าตามที่กรอก จาก 3.php
—
<a href=”test2.php?test=1″><input type=”submit” value=”Submit”></a>
เอาแท็ก <a> ออก ไม่จำเป็น
<input type=”button> value=”Send” onclick=”window.location.href = ‘test2.php?test=1’;”/>
<a …
ใช้ส่งค่า get ไปยังปลายทาง
input คือส่วนหนึ่งของ form
********************************
<a href=”test2.php?test=1″>click here</a>
จะส่งค่า get test=1 ไปยัง test2.php
ใน test2.php ต้องมีการรับค่า test จึงจะรู้ว่า ได้มีการส่งอะไรมาบ้าง
if(isset($_GET[‘test’])){
$test=$_GET[‘test’];
}
**************
ส่วน input
<form method=’GET’ action=’test2.php’>
<input type=’text’ class=’form-control’ value=” name=’keyword’ placeholder=”keyword : …”>
<input type=’hidden’ class=’form-control’ value=’1′ name=’test’>
<button type=”submit” class=”btn btn-primary”>Send</button>
</form>
—
<? เปิดแท็ก
<?php เปิดแท็ก
<?php echo เปิดแท็ก+แอ๊กโค่
<?= เปิดแท็ก+แอ๊กโค่
<?=$_POST[“name”];?>
มันมีค่าอยู่ในตัวเองอยู่แล้ว ใส่ = ไป ก็คือให้มันแสดงค่าออกทางหน้าจอ
ถ้าเราเอา ตัวแปรอื่นไปแทนค่า ค่าก็จะอยู่ในตัวแปรนั้นแทน
เช่น
<?php $name=$_POST[‘name’];
echo $name;
?>
ก็จะมีค่าเท่ากับ
<?php echo $_POST[‘name’];?>
หรือเท่ากับ
<?=$_POST[“name”];?>
ex
<a href=”phpMultiUploadResizeToMySQL3.php?sid=<?=$sid;?>”>View files</a>
1 ถ้าคุณต้องการส่งข้อมูลจากฟอร์มแบบ Submit ธรรมดา นั่นหมายความว่าคุณต้งกำหนด Action ไปยังไฟล์ที่คุณต้องการส่งข้อมูลไป ซึ่งในที่นี้คุณยังไม่มี แต่ถ้าคุณ.. (ข้อต่อไป)
2 ถ้าคุณต้องการส่งข้อมูลในฟอร์มนี้แบบใช้ปุ่ม type button หรือจากการคลิกอะไรก็ตาม (OnClick) วิธีการนำข้อมูลในฟอร์มไปใส่ให้กับตัวแปรอย่างที่คุณใช้อยู่นี้ไม่ถูกต้องครับ ซึ่งถ้าเลือกวิธีส่งในข้อ 2 นี้ต้องใช้ code ทางฝั่ง Client site เข้ามาจัดการ เช่น Javascript เป็นต้น โดย
– อาจจะเขียนเป็นฟังก์ชั่นเพื่อดึงค่าจากฟอร์ม (ฟังก์ชั่นเขียนโดย Javascript) วิธีนี้น่าจะดีที่สุดนะครับในกรณีที่ฟอร์มมีข้อมูลมากๆ
– หรือใช้ Document.GetElementByID เข้ามาช่วยในการเอาค่าจาก input (Element) ต่าง ๆ ในฟอร์มเพื่อส่งไป
<a href=”step1.php?id=<?php echo $row[‘id’];?>”>
ไฟล์รับ
echo “$id”;