使用php获取选择框的选定键/值


Get selected key/value of a select box using php

如何使用php获取HTML选择框的选定键和值?

<select>
    <option value="KEY">VALUE</option>
</select>

php代码?

对于PHP,它不是直接的。

然而,使用阵列可以实现它

在一个通用函数中获取和排列所有选项:

$options = array();
$options[1] = 'one';
$options[2] = 'two';
$options[3] = 'three';

显示下拉菜单如下:

<select name="opt">
<option value=""></option>
<?php
if (! empty($options)) {
 foreach ($options as $key => $val)  {
?>
<option value="<?php echo $key;?>"><?php echo $val;?></option>
<?php
 }
}
?>
</select>

在表单发布的位置,再次获取数组。

//$options : fetch from common function.
if (isset($_POST['opt'])) {
 echo "key: " . $_POST['opt'];
 echo "<br/>";
 echo "value: " . isset($options[$_POST['opt']]) ? $options[$_POST['opt']] : '';
}

你必须这样做

<form class="" action="receiver.php" method="post">
  <select name="mykey">
      <option value="KEY">VALUE</option>
  </select>      
</form>

在你的receiver.php中做这个例子

$keys = $_POST['mykey'];

select的名称是键,option是值。

<select name="KEY">
  <option value="VALUE">VALUE</option>
  <option value="VALUE_2">VALUE</option>
</select>

提交时,您将在$_GET$_POST中获得一对KEY => VALUE(无论您用于处理请求)

page1.html:

<form action="page2.php" name='add' method="post">
<select name="foo">
    <option value="my_value">my_value</option>
</select>
<input type='submit' name='submit'/>
</form>

page2.php:

<?php
$result = $_POST['foo'];
echo "result = ".$result."<br>";//output: result = my_value
?>

使用PHP,您可以使用以下内容:

将Key和Value作为POST数据,用符号分隔,例如"/"。

HTML:

<select name="myselect">
    <option value="KEY/VALUE">VALUE</option>
</select>

然后在PHP中,使用explode()函数分离该键。

PHP

$pair = explode("/", $_POST["myselect"]);
$key   = $pair[0];
$value = $pair[1];
print "Key: $key<br />";
print "Value: $value<br />";

假设您有类似的form

<select name="country">
    <option value="IN_India">India</option>
    <option value="CN_China">China</option>
    <option value="AE_UAE">UAE</option>
</select>

提交后,你的$_POST会看起来像这个

print_r($_POST);
Array
(
    [country] => IN_India
}

现在解释你的$_POST数据,并获取像这样的值

$data = explode('_', filter_input(INPUT_POST, 'country'));
print_r($data);
Array
(
    [0] => IN
    [1] => India
)