我正在尝试制作一个带有一些选项的下拉菜单,并选择“其他”,这将允许用户输入自己的值。
我已经完成了这个,但是保存的唯一值是来自文本输入框的值,如果我不选择其他而是从菜单中选择一个值是空白的。
<?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>
和PHP:
$val6 = $_POST["Room"];
// I continue to write values into a .csv file and such...
为什么在选择其他时,它只获取输入框所写的值?
提前致谢!
答案 0 :(得分:1)
更改
<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"];
}
?>
答案 1 :(得分:0)
您只需更改输入框名称,因为输入类型中只有一个名称,lst name value得到此名称。像这样
<input type="text" name="Roomno" id="roomnumber" style='display:none;'/>