验证下拉选项(菜单)

时间:2014-07-14 23:21:54

标签: javascript php jquery html html5

在包含表单的小型网站上工作,其中一个选项是一个看起来像这样的下拉选项(菜单)

adduser.html

<label for="username">Username: <input type="text" id="username" name="username" value="" /><br /> 
<select name="level">
  <option value="1">Select Level...</option>
  <option value="2">Boss</option>
  <option value="3">Employee</option>
</select><br />
<label for="password">Password: <input type="text" id="password" name="password" value="" /><br />

我这样做是为了验证是否选择了选项

uservalidation.php

if(empty($_POST['username']))
{
  die("Enter a username<br><a href='adduser.php'>back</a>");
}

if(empty($_POST['password']))
{
  die("Enter a password<br><a href='adduser.php'>back</a>");
}

if(isset($_POST['level']) && ($_POST['level'] == '1'))
{
  die("Select level<br><a href='adduser.php'>back</a>");
}

但这不知道为什么或如何解决这个问题?

提前致谢

2 个答案:

答案 0 :(得分:1)

在HTML周围使用form标记,并确保在method="post"代码中使用form,以便POST请求在PHP中有效。

action标记的form属性只是指定表单将数据提交到的网址。

试试这个:

<form action="#" method="post">
<label for="username">Username: <input type="text" id="username" name="username" value="" /><br /> 
<select name="level">
  <option value="1">Select Level...</option>
  <option value="2">Boss</option>
  <option value="3">Employee</option>
</select><br />
<label for="password">Password: <input type="text" id="password" name="password" value="" /><br />
<input type="submit">
</form>
<?
if(isset($_POST['level']) && ($_POST['level'] == '1'))
{
  die("Select level<br><a href='adduser.php'>back</a>");
}
?>

<强>更新

正如评论中所述,我在其中添加了isset($_POST)支票以避免Undefined index

答案 1 :(得分:0)

看起来您不是在验证表单是否已发布。

if(isset($_POST['level']) && ($_POST['level'] == '1'))
{
  die("Select level<br><a href='adduser.php'>back</a>");
}