2013-01-08 30 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

感謝您的答覆。我也使用「名稱」屬性,但它給了我相同的結果。我總是從