无法使用php获取我的textfield'new_list_id'的值。这是我的代码:
<select id="mymenu" size="1" name='sf_old' class='short_tf'>
<option > </option>
<option value="nothing">New Input</option>
<option value="101">101</option>
<option value="102">102</option>
</select>
<input type='text' class='short_tf' name='new_sf' id='new_list_id' style='display:none;'/>
<script type="text/javascript">
var selectmenu=document.getElementById("mymenu")
selectmenu.onchange=function(){
var index = selectmenu.selectedIndex;
if (index == '1'){
document.getElementById('new_list_id').style.display='inline';
document.getElementById('mymenu').style.display='none';
}
}
</script>
使用php我可以获取我的SELECT标签'mymenu'的值,如果它是选中的那个但我无法检索我的textfield'new_list_id'的值,如果它是一个存在且SELECT标签被隐藏。< / p>
(问题) 我得到的文本字段的值是字符串“nothing”,它来自我的SELECT标签。无法弄清楚为什么。 - 我是一名菜鸟程序员,也很抱歉我的英语很差..非常感谢你的帮助。
我也使用了name属性,但它给了我相同的结果。请检查我的PHP代码。感谢
if(isset($_REQUEST['sf_old']))
{ $sf=$_REQUEST['sf_old'];}
elseif(isset($_REQUEST['new_sf']))
{ $sf=$_REQUEST['new_sf'];}
else
{ $sf='';}
echo $sf;
答案 0 :(得分:1)
从php中你必须使用“name”属性。 “new_sf”id属性主要用于客户端脚本。
答案 1 :(得分:1)
试试这个:
<input type='text' class='short_tf' name='new_list_id' id='new_list_id' style='display:none;'/>
name
属性是PHP用来检索值的属性。
答案 2 :(得分:1)
将元素的display
样式属性更改为none
只会使可视隐藏。它不会改变将要或不会被发送到服务器的事实。因此,第一个条件始终为true,如果从未触发,则为else
子句。
您可以尝试另一种方式:
$sf = "";
if(isset($_POST['sf_old']) && isset($_POST['new_sf'])){
if($_POST['sf_old'] == "nothing"){
$sf = $_POST['new_sf'];
} else {
$sf = $_POST['sf_old'];
}
}
echo $sf;
我更喜欢直接使用$_POST
代替$_REQUEST
。
答案 3 :(得分:0)
我是这样的: 你想从输入字段中获取值,如果它不是空的,否则你想要下拉值。
如果陈述有点
,你需要扩展你这是整个代码:
<?php
$sf='';
if(isset($_REQUEST['sf_old'])){
$sf = $_REQUEST['sf_old'];
if($sf == "nothing")
if(isset($_REQUEST['new_sf'])){
$sf = $_REQUEST['new_sf'];
}
}
echo $sf;
?>