如下:
<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”)
答案 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>