我正在尝试制作一个包含一些选项的下拉菜单,以及允许用户输入自己的值的"其他"。
我已经这样做了,但是保存的唯一值是文本输入框中的值,如果我不选择其他,而是从菜单中选择一个值,则该值为空。
<?php $val = $_POST["Room"]; ?>
// the value here is blank when choosing the drop down menu options.
这是我的代码(相关部分):
JavaScript 函数:
<script type="text/javascript">
function checkSelectedValue(val){
var element=document.getElementById('roomnumber');
if(val=='other'){
element.style.display='block';}
else{
element.style.display='none';}
}
</script>
<p><label>Room number:<br>
<select name="Room" size=4 onChange='checkSelectedValue(this.value);'>
<option value="1/201" selected="selected">1/201</option>
<option value="2/201">2/201</option>
<option value="3/201">3/201</option>
<option value="other">Other</option>
</label></select>
<input type="text" name="Room" id="roomnumber" style='display:none;'/> </p>
HTML 中的下拉菜单:和PHP:
$val6 = $_POST["Room"];
// I continue to write values into a .csv file and such...
为什么当选择其他输入框时,它只拾取输入框写入的值?
提前感谢!
更改
<input type="text" name="Room" id="roomnumber" style='display:none;'/>
自
<input type="text" name="Roomnumber" id="roomnumber" style='display:none;'/>
然后在 php 代码中像下面这样
<?php
$val = $_POST["Room"];
if($val=='other'){
$val = $_POST["Roomnumber"];
}
?>
你只需更改输入框名称,因为输入类型中只有一个名称,lst 名称值得到这个. 像这样
<input type="text" name="Roomno" id="roomnumber" style='display:none;'/>