我有一个表单,我使用JavaScript
来设置hidden INPUT field
的值,OPTION selected
是$_POST
的文本。 OPTION
会捕获hidden INPUT
的值,但不会捕获hidden INPUT
的值。 OPTION
用于传递$_POST
文字,因此可在array
var sele = document.getElementById('building_type');
var seleVal = sele.options[sele.selectedIndex].value;
var seleTxt = sele.options[sele.selectedIndex].text;
中使用。
这是用于获取所选OPTION
的值和文本的JavaScript部分 document.getElementById("other_hidden_text").value = seleTxt;
这是我在同一个JavaScript中设置ID为“other_hidden_text”的INPUT字段的值。
$_POST['other_hidden_text']
我的问题是{{1}}是空的。有什么想法吗?
答案 0 :(得分:1)
似乎隐藏的input
元素不属于form
元素。在HTML中,如果要使用输入元素,则需要将它们包含在form
中,并指定提交数据的位置,并在表单的属性中使用哪种方法(POST或GET)。
<form action="server_side_code.php" method="post">
<input type="text" name="value1" />
<input type="hidden" name="value2" /> <!-- OK -->
<input type="submit" />
</form>
<input type="hidden" name="value3" /> <!-- Will not be sent to anywhere -->
使用适当的工具,您可以检查浏览器实际发送到服务器端代码的数据(例如,您在$ _POST中搜索值的PHP文件)。例如:
(其他浏览器可能会提供此类工具,但我现在并未安装它们以介绍如何打开其开发人员工具。)
然后在提交表单后,将出现网络呼叫列表中的新行。单击它并查看发送到服务器端代码的参数。检查您的隐藏字段值是否存在。
如果你可以在那里看到隐藏的字段值,那么问题是你的JavaScript实际上并没有更新这个隐藏输入的值。也许它没有被触发。
答案 1 :(得分:0)
试试这个:
html代码:
<select id="building_type">
<option value='somevalue1'>value1</option>
<option selected='yes' value='somevalue2'>value2</option>
</select>
<input type="hidden" name="somename" id="other_hidden_text" value=""/>
JavaScript代码:
var sele = document.getElementById('building_type');
var seleVal = sele.options[sele.selectedIndex].value;
var seleTxt = sele.options[sele.selectedIndex].text;
document.getElementById("other_hidden_text").value = seleTxt;
alert('selected: '+ document.getElementById("other_hidden_text").value);
还可以假设您没有指定正确的隐藏元素或选择元素。例如,不是所有属性。