2013-01-08 32 views
1

的价值不能得到使用PHP我的文本框“new_list_id”的值。这里是我的代码:使用PHP我能得到我的选择变量的值不能让我的文本框

<select id="mymenu" size="1" name='sf_old' class='short_tf'> 
<option >&nbsp;</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> 

“的MyMenu”如果它是一个选择,但我不能检索如果我的文本框“new_list_id”的价值它是一个呈现并且SELECT标记被隐藏。

(问题) 为我的文本框的值是字符串“什么”,这是从我的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

在PHP没有PHP代码标记问题。讽刺的 – Alexander

+0

@亚历山大请检查我的PHP代码。对不起,我应该已经包括它earlier.thanks – user1957878

+0

呀,你有一个误解,你可以检查以下 – Alexander

回答

1

将元素的display样式属性更改为none只会使其在视觉上隐藏。它不会改变它将被发送到服务器的事实。所以,第一个条件总是如此,如果从未触发条款else

你可以尝试另一种方法:使用直接$_POST代替$_REQUEST

$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; 

我喜欢。

+0

你是绝对正确的。感谢您的解释,它确实帮助了我。 – user1957878

1

从php你必须使用“名称”属性。 “new_sf”id属性主要用于客户端脚本。

+0

感谢您的答复。我也使用“名称”属性,但它给了我相同的结果。我总是从