粘滴菜单不粘?

时间:2014-01-26 11:17:40

标签: php forms drop-down-menu sticky

我正在建立一个网站的联系页面,除了下拉菜单外,所有表单字段都没有?我已经完成了我所知道的代码,但对PHP非常新,并且不知道问题出在哪里?代码如下:

   <?php
   $WebSearch = $SocialMedia =  $WordOfMouth = $Other ="";

if ($_SERVER["REQUEST_METHOD"] == "POST")
{

//Question
   if (empty($_POST["question"]))
   {$comment = "";}
   else
   {$comment = test_input($_POST["question"]);}

//WebSearch
   if (empty($_POST["WebSearch"]))
   {$comment = "";}
   else
   {$comment = test_input($_POST["WebSearch"]);}

//SocialMedia
   if (empty($_POST["SocialMedia"]))
   {$comment = "";}
   else
   {$comment = test_input($_POST["SocialMedia"]);}

//WordOfMouth
   if (empty($_POST["WordOfMouth"]))
   {$comment = "";}
   else
   {$comment = test_input($_POST["WordOfMouth"]);}

//Other
   if (empty($_POST["Other"]))
   {$comment = "";}
   else
   {$comment = test_input($_POST["Other"]);}

}
function test_input($data)
{
     $data = trim($data);
     $data = stripslashes($data);
     $data = htmlspecialchars($data);
     return $data;
}
?>

<form method="post" id="form" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
    <p id="info-req">How did you find about This site?</p>
    <!--Question--><select id="marketing" name="question">
        <option value="----------" style="color:black">----------</option>
        <option value="Web Search" style="color:black" name="WebSearch">Google Search</option><?php if(isset($_POST['WebSearch'])) {echo $_POST['WebSearch']; } ?>
        <option value="Social Media" style="color:black" name="SocialMedia">Social Media</option><?php if(isset($_POST['SocialMedia'])) {echo $_POST['SocialMedia']; } ?>
        <option value="Word of mouth" style="color:black"name="WordOfMouth">Word of mouth</option><?php if(isset($_POST['WordOfMouth'])) {echo $_POST['WordOfMouth']; } ?>
        <option value="Other" style="color:black" name="Other">Other</option><?php if(isset($_POST['Other'])) {echo $_POST['Other']; } ?>
    </select>

    <div>
        <input type="submit" value="Send" id="submit">
    </div>
</form>

我希望这是一个简单的修复或我错过的东西?在学习了几个月后,我正在努力学习php。

非常感谢您的帮助,

马盖特

1 个答案:

答案 0 :(得分:0)

我会逐行查看我发现的内容。不要以为我是挑剔的。 :-)嗯,让我们看看。我将从表单开始。我看着一切。希望我们能找到一种方法来解决这个错误并最大限度地减少将来的错误。 :-) 我很乐意提供帮助。

<form method="post" id="form" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

1。是的,你试图安全,但如果htmlspecialchars(),为什么不htmlentities()?只需说出“#。

PHP Manual: htmlentities()

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

2。了解<label></label> HTML标记,并使用它标记表单控件。

W3C HTML 4.01: The label element.

(以下实际上是一行,但我将其分解为几个项目。)

<option value="Web Search" style="color:black" name="WebSearch">Google Search</option>

3。只是编码样式问题,但您可能希望value=""更接近结束&#39;&gt;&#39;在您的开头<option>标记中。实施例...

<option value="Web Search">Google Search</option>

注意我删除了style="color:black",因为如果将此样式作为类放在外部样式表中,将来会更好。注意:默认情况下,大多数用户代理/浏览器中选项文本的颜色为黑色。实施例。

.optionTextColor{color:black;}

然后您的选项中不会嵌入任何CSS。当然,如果你这样做......

option{color:black;}

...您网页上的所有选项元素都会继承您希望他们拥有的样式,而不需要class=""属性。

<option class="optionTextColor" value="Web Search">Google Search</option> //using a specific class

<option value="Web Search">Google Search</option>                         //using a global, element level selector.

另请注意,name属性已消失,因为它不是<option>标记的有效属性。

W3C HTML 4.01: The Option Element

在页面中搜索选项属性定义

在这里,您将发现<option>标记的 selected =&#34;&#34; 属性,这是您需要制作的内容 <option>控件中的<select>粘贴。您需要一个PHP条件语句,根据$_POST['question']的值来打印selected="selected"作为您想要粘贴的<option>的属性。

首先处理这些事情。有许多可以讨论的PHP内容,但正如你所说,你处于学习阶段。凉。