使用 $_ POST 从 HTML 中获取选项值

我使用 select如下:

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

如何从 select选项获取值并将其存储到一个变量中以便将来在 PHP 中使用?

839441 次浏览

像这样:

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

$_POST数组的索引总是基于任何 HTML 输入的 name属性的值。

这样使用:

$selectOption = $_POST['taskOption'];

但是给 <option>标记赋值总是更好的做法。

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

可以通过键访问 $_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;
}
<select name="taskOption">
<option value="first">First</option>
<option value="second">Second</option>
<option value="third">Third</option>
</select>


$var = $_POST['taskOption'];

这取决于包含选择的表单的方法设置为“ get”还是“ post”。

如果 <form method="get">,则 select 的值将位于超全局数组 $_GET['taskOption']中。

如果 <form method="post">,则 select 的值将位于超全局数组 $_POST['taskOption']中。

要将它存储到一个变量中,您需要:

$option = $_POST['taskOption']

了解更多信息的一个好地方是 PHP 手册: http://php.net/manual/en/tutorial.forms.php

你也可以这样做:

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


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