使用php获取所选选项的文本

时间:2012-08-13 00:22:02

标签: php javascript html

如下:

<form  action="test.php"  method="POST">  
    <select id="test" name="test">
     <option value="1">Test One</option>
     <option value="2">Test Two</option>
    </select>
</form>

在test.php中,我可以得到1或2如下:

$result=$_POST['test'];

如何使用php获取所选选项的文本(即“Test One”或“Test Two”)

9 个答案:

答案 0 :(得分:15)

这不是单靠PHP可以完成的事情。 PHP脚本只能“查看”发布的信息(发布的value选项的selected)。您可以使用javascript更改隐藏的input字段,其中包含所选option的文本内容,这将包含在$_POST数组中:

<form  action="test.php"  method="POST">  
    <select id="test" onchange="document.getElementById('text_content').value=this.options[this.selectedIndex].text">
     <option value="1">Test One</option>
     <option value="2">Test Two</option>
    </select>

<input type="hidden" name="test_text" id="text_content" value="" />
</form>

这将使所选索引的$_POST['test_text']可用(但是当页面加载时你也应该强制onchange()函数,这样即使用户离开了选择字段,它也会被填充。默认值。

答案 1 :(得分:12)

只有表单控件的value才会发送到服务器。发送两者的简单方法是在value包含

<select name="test">
    <option value="1|Test one">Test one</option>
    <option value="2|Test two">Test two</option>
</select>

然后:

$test = explode('|', $_POST['test']);

然后你最终会以{1}成为“1”而$test[0]成为“测试1”。

答案 2 :(得分:3)

你不能;该信息不会发送回服务器。您需要先了解如何生成HTML并从中获取文本。

答案 3 :(得分:1)

它没有被发送,所以获得它的唯一方法是将数组映射到PHP代码中的标题。

答案 4 :(得分:1)

这是我可以使用的解决方案,除了我已经让onChange调用一个函数来根据语句中选定的构建类型显示隐藏块。

我有需要用户选择的建筑类型。几种建筑类型具有一组独特的问题,例如银行分行,数据中心,法庭等。但是有很多人都有同样的问题,我称之为其他类型。每个选项都有其相关值,例如银行分行的值为&#34; Bank_Branch&#34;,数据中心有&#34; Data_Center&#34;,但其他类型的值为&#34; Other_Type&#34;。 &#34; Other_Type&#34;的文本根据建筑类型的不同,例如会议中心,博物馆,表演艺术等。所以我需要价值&#34; Other_Type&#34;到&#34;显示&#34; &#34; Other_Type&#34;中的问题DIV阻止使用文本值发送标识建筑物类型的电子邮件,例如会议中心,博物馆,表演艺术等

使用PHP获取所选项目的文本值的任何方法?我已经在HTML

中使用了以下内容
   var sele = document.getElementById('building_type');
   var seleVal = sele.options[sele.selectedIndex].value;
   var seleTxt = sele.options[sele.selectedIndex].text;
   document.getElementById("other_text").innerHTML = seleTxt;

我没有办法做到这一点。

解决:我可以简单地创建隐藏的div,在我的支票中为其他类型设置innerHTML为隐藏的div。

答案 5 :(得分:0)

所选选项的文本不会通过HTML表单传递。如果您需要文本,则必须将其存储在页面上的隐藏HTML输入中,或者您需要在PHP代码中添加一些业务逻辑以将ìd的值转换为文本(通过switch语句) ,或通过查询数据库等。)

答案 6 :(得分:0)

不幸的是,当您提交表单和变量时,它只需要一个参数即它的值。你需要创造价值。测试一个值,以便将其传递给PHP脚本。 value =“1”的目的是什么,因为你可以在不同的属性中使用它?

答案 7 :(得分:0)

我不是一个经验丰富的php程序员,但你可以用php检查SELECT标签中选择的值。 我不知道为什么人们说你不能。

if ( $_POST['test'] == 1) 
{ do something } 
else 
{ option value 2 is selected, do something else }

我相信这会奏效。

答案 8 :(得分:0)

如果不需要1,2,请尝试使用它。您将获得所需的文本作为值

<form  action="test.php"  method="POST">  
    <select id="test" name="test">
     <option value="Test One">Test One</option>
     <option value="Test Two">Test Two</option>
    </select>
</form>