2014-01-26 41 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