我有简单的html:
<select id="rodzajp" name="Rodzaj_pakietu"">
<option value="10">Pak 1</option>
<option value="20">Pak 2</option>
<option value="30">Pak 3</option>
<option value="40">Pak 4 bla </option>
<option value="50">Pak 5 bla bla</option>
</select>
和php:
$Rodzajp = $_POST['Rodzaj_pakietu'];
通过这些线条,我获得了所选期权的价值。 如何使用php选择的选项文本(Pak 1,Pak 2,Pak 3 ...)而不是值(10,20,30 ...),这是我需要的数学形式?
我真的希望它不是非常非常非常容易;)
答案 0 :(得分:3)
除非PHP首先生成<select>
,否则只有一种方法可以使用表单提交文本:
<select>
<option>Sometext</option>
</select>
由于选项标记上没有value
属性,因此浏览器会发送Sometext
。
设置value
参数后,仅发送该值。你可以破解一些javascript,在提交时将两位数据复制到表单中,但这是一个丑陋的黑客攻击。
答案 1 :(得分:2)
我认为既然你没有在选项字段上获得值,你可能想尝试一些javascript。例如,尝试在表单中创建一个隐藏字段,然后在选项标记上添加JS,如:
onclick="document.getElementById('my_hidden_field').value = 10";
这可能有问题..你可能不得不玩,但我希望你看到我在说什么 - 使用JS动态地将隐藏的输入值更改为你想要的,然后从另一边获取该值与PHP一样:
$Rodzajp = $_POST['my_hidden_field'];
编辑:
在考虑了更多之后,onclick事件不会对选项字段起作用..这段代码应该做我们想要的事情:
<强> JS:强>
function changeFunc() {
var selectBox = document.getElementById("rodzajp");
var selectedValue = selectBox.options[selectBox.selectedIndex].value;
document.getElementById('my_hidden_field').value = selectedValue;
}
<强> HTML:强>
<select id="rodzajp" name="Rodzaj_pakietu" onchange="changeFunc();">
<option value="10">Pak 1</option>
<option value="20">Pak 2</option>
<option value="30">Pak 3</option>
<option value="40">Pak 4 bla </option>
<option value="50">Pak 5 bla bla</option>
</select>
<input type="hidden" value="" id="my_hidden_field" />
<强> PHP:强>
$Rodzajp = $_POST['my_hidden_field'];
希望这有帮助。
答案 2 :(得分:-1)
浏览器仅返回OPTION标记的value参数中的内容。如果你想知道“10”是什么,你需要在你的服务器上有一个转换阵列。
请注意,您还有一个额外的“名字”属性。