2014-01-26 40 views
0

我已經問過這個問題了,但是之後我就得到了幫助。我試圖讓我的php下拉菜單變得粘稠,但是每次按下提交按鈕後它都會清空頂層菜單項。我不知道我要去哪裏,所以任何幫助都非常感謝。代碼如下:PHP drop menu not sticking

<!DOCTYPE html> 
<html> 

<head> 
    <title>Example</title> 
</head> 

<body> 

<?php 
    if (isset($_POST['Question'])) 
    { 
     $menuVar = $_POST['fontFamily']; 
    } 
?> 

<p id="info-req">How did you find about this site?</p> 

<form name="TestMenu" method="post" id="marketing"> 
    <select name="Question"> 
     <option <?php if($menuVar=="----------") echo 'selected="selected"'; ?> value="----------">----------</option> 
     <option <?php if($menuVar=="WebSearch") echo 'selected="selected"'; ?> value="WebSearch">Web Search</option> 
     <option <?php if($menuVar=="SocialMedia") echo 'selected="selected"'; ?> value="SocialMedia">Social Media</option> 
     <option <?php if($menuVar=="Wordofmouth") echo 'selected="selected"'; ?> value="Wordofmouth">Word of mouth</option> 
     <option <?php if($menuVar=="Other") echo 'selected="selected"'; ?> value="Other">Other</option> 
    </select> 
    <input type="submit" /> 
</form> 

</body> 
</html> 
+0

你是什麼意思'粘性'?您希望表單在頁面刷新後保留之前選定的值嗎? –

+0

頁面上還有其他表單域是必需的,如果沒有輸入日期,則會顯示一條錯誤消息。發生這種情況時,我不希望此下拉菜單重置。我已經解決了其他表單字段,他們不再清除,但不知道如何保持下拉菜單條目?如果由於無效條目而顯示錯誤消息,我希望所有數據保持原來的狀態,就像在按下提交按鈕之前一樣。如果沒有發生這種情況,用戶將不得不重新填寫整個表格。 – Margate

+0

截圖請。 –

回答

1

首先,您的表單中沒有$POST['fontFamily']變量。你爲什麼要使用它? 您應該使用$_POST['Question']以獲得此值。

所以它應該是:

if (isset($_POST['Question'])) 
{ 
    $menuVar = $_POST['Question']; 
} 

你也應該初始化$menuVar如果有爲了不得到Notice: Undefined variable $menuVar沒有$POST。所以最後你的代碼應該是:

if (isset($_POST['Question'])) 
    { 
     $menuVar = $_POST['Question']; 
    } else { 
     $menuVar = "----------"; 
    } 
+0

固定!我完全錯過了fontFamily位!那是個錯誤。我花了幾個小時試圖解決這個問題,但沒有成功,並且即將放棄!非常感謝你的時間和代碼。我會用我的photoshop技能回饋社區,因爲我的編碼技巧很糟糕! – Margate

+1

我建議您在您的開發環境中啓用error_reporting,包括PHP配置中的通知。然後你就可以輕鬆地調試這個問題。 –

+0

那麼,當我做了我最初的PHP培訓,我確實在本地進行了設置,並通過終端命令配置了錯誤報告。問題是,我有一些問題,我只是不明白,並安裝了MAMP。這就是我現在使用的!你知道一個好的PHP調試器嗎?我絕對需要一個......當自己的事情不起作用時,我自學成才,真正奮鬥!感謝您的幫助:) – Margate