使用$_POST从HTML中获取选择选项的值

149

我使用如下的select

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

如何在PHP中从

8个回答

233

使用方法:

$selectOption = $_POST['taskOption'];

但是给你的 <option> 标签赋值通常更好。

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

1
为什么给<option>标签赋值总是更好的选择?"如果没有包含value属性,则该值默认为元素内包含的文本"。如果它能正常工作,那有什么问题吗? - osullic
4
同意,但我猜5年前有少数浏览器没有这么做。 - Praveen Kumar Purushothaman
我把$selectOption = $_POST['taskOption'];放在了php代码里,但它似乎没有起作用。 - Yunfei Chen
@Kokodoko 你可以给一个 value="1-First" 吗? - Praveen Kumar Purushothaman
谢谢,但我的评论已经一年了 :) 我可能已经解决了! - Kokodoko
显示剩余4条评论

37
您可以通过其键值访问$_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; 
   }

17

你也可以像这样做:

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

对于 php8+ 版本,您可以使用 match 表达式:

$select = $_POST['select1'] ?? '';

$result = match ($select) {
    'value1' => 'this is value1',
    'value2' => 'this is value2',
    default => 'unknown value',
};

echo $result;

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

$var = $_POST['taskOption'];

3
取决于包含选择器的表单的方法设置为“get”还是“post”。
如果 <form method="get">,则选择器的值将位于超级全局数组 $_GET['taskOption'] 中。
如果 <form method="post">,则选择器的值将位于超级全局数组 $_POST['taskOption'] 中。
要将其存储到变量中,您可以:
$option = $_POST['taskOption']

更多信息的好去处是PHP手册:http://php.net/manual/zh/tutorial.forms.php

2

就像这样:

<?php
  $option = $_POST['taskOption'];
?>
< p > $_POST 数组的索引始终基于任何 HTML 输入的 name 属性的值。 < /p >

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]);

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";
}
}?>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接