Echo Dropdown 的选项名称而不是它的值
Echo Dropdown's Option Name Rather Than Its Value
我正在尝试 echo
所选下拉列表的名称而不是其值。我知道 echo
ing 下拉菜单的值可以通过实现以下内容来实现:
$variable = $_POST['vehicleStyle'];
echo $variable;
其中 vehicleStyle
是 <select>
名称。
但是,我不在 value
我在选项名称之后。
这是我的PHP。我正在从 XML 文档中提取数据,其中 $k
等于选项名称,$v
等于其值。
<html>
<body>
<?php
$xml = file_get_contents('note.xml');
$dom = new DOMDocument();
$dom->loadXML($xml);
?>
<form action="additionalinfo.php" method=POST>
<select name="vehicleStyle">
<option selected="selected">Choose style</option>
<?php
foreach ( $dom->getElementsByTagName('style') as $styletwo ) {
$styleid = $styletwo->getAttribute("name");
$styleData [$styleid]= $styletwo->getAttribute("id");;
}
foreach ($styleData as $k=>$v){
?>
<option value='<?php echo $v;?>'><?php echo $k;?> </option>
<?php
}
?>
</select>
<br>
<button class="button">Submit</button>
</form>
</body>
</html>
这会输出一个包含两个值的下拉列表:“Audi=>292015”和 'BMW=>292016'。如果我添加
$variable = $_POST['vehicleStyle'];
echo $variable;
对于我的代码,我得到 292015
或 292016
(选择哪个)。如何回显下拉名称 Audi
或 BMW
?
谢谢!
只需将选项的 value
更改为 $k
,即
<option value='<?php echo $k;?>'><?php echo $k;?> </option>
如果您只需要文本而不需要数字,则不要将数字作为选项中的值。
<option><?php echo $k;?></option>
如果您需要同时获取文本和值,有各种关于如何实现的建议here。
怎么样...
<option value='<?php echo $v . '|' . $k;?>'><?php echo $k;?> </option>
然后
$variable = $_POST['vehicleStyle'];
$variable = explode('|', $variable);
echo $variable[0]; //The "value"
echo $variable[1]; //The "text"
可能会使某些验证变得更加困难,但它应该能满足您的需求。
我正在尝试 echo
所选下拉列表的名称而不是其值。我知道 echo
ing 下拉菜单的值可以通过实现以下内容来实现:
$variable = $_POST['vehicleStyle'];
echo $variable;
其中 vehicleStyle
是 <select>
名称。
但是,我不在 value
我在选项名称之后。
这是我的PHP。我正在从 XML 文档中提取数据,其中 $k
等于选项名称,$v
等于其值。
<html>
<body>
<?php
$xml = file_get_contents('note.xml');
$dom = new DOMDocument();
$dom->loadXML($xml);
?>
<form action="additionalinfo.php" method=POST>
<select name="vehicleStyle">
<option selected="selected">Choose style</option>
<?php
foreach ( $dom->getElementsByTagName('style') as $styletwo ) {
$styleid = $styletwo->getAttribute("name");
$styleData [$styleid]= $styletwo->getAttribute("id");;
}
foreach ($styleData as $k=>$v){
?>
<option value='<?php echo $v;?>'><?php echo $k;?> </option>
<?php
}
?>
</select>
<br>
<button class="button">Submit</button>
</form>
</body>
</html>
这会输出一个包含两个值的下拉列表:“Audi=>292015”和 'BMW=>292016'。如果我添加
$variable = $_POST['vehicleStyle'];
echo $variable;
对于我的代码,我得到 292015
或 292016
(选择哪个)。如何回显下拉名称 Audi
或 BMW
?
谢谢!
只需将选项的 value
更改为 $k
,即
<option value='<?php echo $k;?>'><?php echo $k;?> </option>
如果您只需要文本而不需要数字,则不要将数字作为选项中的值。
<option><?php echo $k;?></option>
如果您需要同时获取文本和值,有各种关于如何实现的建议here。
怎么样...
<option value='<?php echo $v . '|' . $k;?>'><?php echo $k;?> </option>
然后
$variable = $_POST['vehicleStyle'];
$variable = explode('|', $variable);
echo $variable[0]; //The "value"
echo $variable[1]; //The "text"
可能会使某些验证变得更加困难,但它应该能满足您的需求。