当您希望处理实际的“”而不是“value”属性时,如何在PHP中处理选择框?
当我使用下面的PHP代码处理上面的内容时,它会显示在“value”属性中定义的内容,在本例中是价格。实际上,我想显示标记kraiennest、Kajuit、Kapiteinshut中定义的内容。我如何做到这一点 我无法更改这些值,因为在表格末尾计算了总价当您希望处理实际的“”而不是“value”属性时,如何在PHP中处理选择框?,php,forms,drop-down-menu,form-processing,Php,Forms,Drop Down Menu,Form Processing,当我使用下面的PHP代码处理上面的内容时,它会显示在“value”属性中定义的内容,在本例中是价格。实际上,我想显示标记kraiennest、Kajuit、Kapiteinshut中定义的内容。我如何做到这一点 我无法更改这些值,因为在表格末尾计算了总价 <span> Kamertype :</span> <select class="autowidthselect" required area-required="true" name="prijs
<span> Kamertype :</span>
<select class="autowidthselect" required area-required="true" name="prijskamertype" onChange="calculatePrice()" id="prijskamertype">
<option selected="selected" value="">Selecteer kamertype</option>
<option value="295">Kraaiennest</option>
<option value="395">Kajuit</option>
<option value="495">Kapiteinshut</option>
</select>
编辑:
我已经创建了一个数组和一个下拉列表:
<?php
$prijskamertype = $_POST ['prijskamertype'];
echo $prijskamertype.' type';
?>
HTML代码:
<?php
$optionskamertype = array();
$optionskamertype[""] = "Selecteer kamertype";
$optionskamertype["295"] = "Kraaiennest";
$optionskamertype["395"] = "Kajuit";
$optionskamertype["495"] = "Kapiteinshut";
?>
我现在必须做什么?没有办法做到这一点的是普通的PHP 编辑:
这在JavaScript中可能是可行的,但这并不可靠,因为客户端可以控制它。这与PHP无关,而是HTML表单的工作方式:浏览器发送到服务器的唯一内容是value属性的内容。或者,如果没有,选项标记的内容,但这在这里并没有真正的帮助,因为您仍然只能得到一个值 不过,您可以在PHP代码中使用一个数组,其中包含所有选项的值和标签。您可以首先使用它创建下拉列表,然后在提交表单时执行以下操作:
<span> Kamertype :</span>
<select class="autowidthselect" required area-required="true" name="prijskamertype" onChange="calculatePrice()" id="prijskamertype">
<?php
foreach($optionskamertype as $key => $value)
{
echo '<option value="'. $key .'" label="'. $value .'">'.$value.'</option>';
}
?>
</select>
将选项保存在php数组中,选项值为key->$options=array395=>'Kajuit'。。。;。然后在表单提交时,只需选择值->$options[$\u POST['prijskamertype']]作为旁注,如果这些值是价格而不是ID,请非常小心:请记住,来自浏览器的所有输入都不可信;如果我使用浏览器的调试工具提交“1”的价格,会发生什么?客户端也可以控制value属性。因此,使用JavaScript发送值的文本内容并不比value属性更危险!
$label = $option_list[ $_POST['whatever'] ];