得到表单中的选项的php文本(而不是值)

时间:2011-11-06 21:28:05

标签: php html forms option

我有简单的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 ...),这是我需要的数学形式?

我真的希望它不是非常非常非常容易;)

3 个答案:

答案 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”是什么,你需要在你的服务器上有一个转换阵列。

请注意,您还有一个额外的“名字”属性。