Sử dụng $ _POST để nhận giá trị tùy chọn từ HTML


128

Tôi sử dụng selectnhư dưới đây:

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

Làm cách nào để tôi nhận được giá trị từ selecttùy chọn và lưu trữ nó vào một biến để sử dụng trong tương lai, trong PHP?



2
Xem này . Trong tương lai, vui lòng thực hiện tìm kiếm nhanh trên SO trước khi đăng.
kgdesouz

Câu trả lời:


203

Sử dụng theo cách này:

$selectOption = $_POST['taskOption'];

Nhưng nó luôn luôn tốt hơn để cung cấp các giá trị cho các <option>thẻ của bạn .

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

Tại sao luôn luôn tốt hơn để cung cấp giá trị cho các <option>thẻ của bạn ? " Nếu không bao gồm thuộc tính giá trị, giá trị mặc định cho văn bản chứa bên trong phần tử ". Nếu nó hoạt động, điều gì sai với điều đó?
osullic

3
@osullic Đồng ý, nhưng tôi đoán 5 năm trước, một vài trình duyệt đã không làm điều đó.
Praveen Kumar Purushothaman

28

Bạn có thể truy cập các giá trị trong $_POSTmảng bằng khóa của chúng. $ _POST là một mảng kết hợp, vì vậy để truy cập taskOptionbạn sẽ sử dụng $_POST['taskOption'];.

Đảm bảo kiểm tra xem nó có tồn tại trong mảng $ _POST hay không trước khi tiếp tục.

<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

Bạn cũng có thể làm như thế này:

<?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>

11
<select name="taskOption">
      <option value="first">First</option>
      <option value="second">Second</option>
      <option value="third">Third</option>
</select>

$var = $_POST['taskOption'];

3

Phụ thuộc vào nếu biểu mẫu mà lựa chọn được chứa trong đó có phương thức được đặt thành "nhận" hoặc "đăng".

Nếu <form method="get">sau đó, giá trị của lựa chọn sẽ nằm trong mảng siêu toàn cầu $_GET['taskOption'].

Nếu <form method="post">sau đó, giá trị của lựa chọn sẽ nằm trong mảng siêu toàn cầu $_POST['taskOption'].

Để lưu nó vào một biến bạn sẽ:

$option = $_POST['taskOption']

Một nơi tốt để biết thêm thông tin sẽ là hướng dẫn sử dụng PHP: http://php.net/manual/en/tutorial.forms.php


2

Như thế này:

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

Chỉ mục của $_POSTmảng luôn dựa trên giá trị của namethuộc tính của bất kỳ đầu vào HTML nào.


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

thử cái này

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

1


- tệp 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>

- Tệp php -

$city = (isset($_POST['city']) ? $_POST['city']: null);
print("city is: ".$city[0]);
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.