ใช้ $ _POST เพื่อรับค่าตัวเลือกที่เลือกจาก HTML


128

ฉันใช้selectดังต่อไปนี้:

<select name="taskOption">
    <option>First</option>
    <option>Second</option>
    <option>Third</option>
</select>

ฉันจะรับค่าจากselectตัวเลือกและเก็บไว้เป็นตัวแปรสำหรับการใช้งานในอนาคตใน PHP ได้อย่างไร



2
ดูนี่สิ ในอนาคตโปรดทำการค้นหาอย่างรวดเร็วใน SO ก่อนโพสต์
kgdesouz

คำตอบ:


203

ใช้วิธีนี้:

$selectOption = $_POST['taskOption'];

แต่จะเป็นการดีกว่าเสมอในการกำหนดค่าให้กับ<option>แท็กของคุณ

<select name="taskOption">
  <option value="1">First</option>
  <option value="2">Second</option>
  <option value="3">Third</option>
</select>

ทำไมการให้คุณค่ากับ<option>แท็กของคุณจึงดีกว่าเสมอ msgstr " ถ้าไม่มีค่าของแอตทริบิวต์ค่าเริ่มต้นจะเป็นข้อความที่อยู่ในองค์ประกอบ " หากใช้งานได้เกิดอะไรขึ้นกับสิ่งนั้น
osullic

3
@osullic เห็นด้วย แต่ฉันเดาว่า 5 ปีที่แล้วเบราว์เซอร์บางตัวไม่ได้ทำ
Praveen Kumar Purushothaman

28

คุณสามารถเข้าถึงค่าใน$_POSTอาเรย์โดยใช้กุญแจ $ _POST เป็นอาเรย์เพื่อที่จะเข้าถึงคุณจะใช้taskOption$_POST['taskOption'];

ตรวจสอบให้แน่ใจว่ามีอยู่ในอาร์เรย์ $ _POST ก่อนดำเนินการต่อ

<form method="post" action="process.php">
  <select name="taskOption">
    <option value="first">First</option>
    <option value="second">Second</option>
    <option value="third">Third</option>
  </select>
  <input type="submit" value="Submit the form"/>
</form>

process.php

<?php
   $option = isset($_POST['taskOption']) ? $_POST['taskOption'] : false;
   if ($option) {
      echo htmlentities($_POST['taskOption'], ENT_QUOTES, "UTF-8");
   } else {
     echo "task option is required";
     exit; 
   }

14

คุณสามารถทำสิ่งนี้ได้เช่นกัน:

<?php
if(isset($_POST['select1'])){
    $select1 = $_POST['select1'];
    switch ($select1) {
        case 'value1':
            echo 'this is value1<br/>';
            break;
        case 'value2':
            echo 'value2<br/>';
            break;
        default:
            # code...
            break;
    }
}
?>


<form action="" method="post">
    <select name="select1">
        <option value="value1">Value 1</option>
        <option value="value2">Value 2</option>
    </select>
    <input type="submit" name="submit" value="Go"/>
</form>


3

ขึ้นอยู่กับว่าแบบฟอร์มที่เลือกมีอยู่ในนั้นมีวิธีการตั้งค่าเป็น "รับ" หรือ "โพสต์"

หากแล้วค่าของการเลือกจะตั้งอยู่ในอาเรย์ระดับโลกสุด<form method="get">$_GET['taskOption']

หากแล้วค่าของการเลือกจะตั้งอยู่ในอาเรย์ระดับโลกสุด<form method="post">$_POST['taskOption']

หากต้องการเก็บไว้ในตัวแปรคุณจะต้อง:

$option = $_POST['taskOption']

สถานที่ที่ดีสำหรับข้อมูลเพิ่มเติมจะเป็นคู่มือ PHP: http://php.net/manual/en/tutorial.forms.php


2

แบบนี้:

<?php
  $option = $_POST['taskOption'];
?>

ดัชนีของ$_POSTอาร์เรย์จะขึ้นอยู่กับค่าของnameแอตทริบิวต์ของอินพุต HTML ใด ๆ


1
<select name="taskOption">
<option value="1">First</option>
<option value="2">Second</option>
<option value="3">Third</option>
</select>

ลองนี้

<?php 
if(isset($_POST['button_name'])){
$var = $_POST['taskOption']
if($var == "1"){
echo"your data here";
}
}?>

1


- ไฟล์ html -

<select name='city[]'> 
                <option name='Kabul' value="Kabul" > Kabul </option>
                <option name='Herat' value='Herat' selected="selected">             Herat </option>
                <option name='Mazar' value='Mazar'>Mazar </option>
</select>

- ไฟล์ php -

$city = (isset($_POST['city']) ? $_POST['city']: null);
print("city is: ".$city[0]);
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.