0

HTML

<form method="post" action="proc.php">
    <select name="yDept" class=sOptions>
          <option disabled value="#" SELECTED>========</option>
          <option value="acct">acct</option>
          <option value="its">its</option>
    </select>
</form>

PHP

    $ydept = trim(strip_tags(stripslashes($_POST['yDept'])));
    $pass = 87;

    if($fname <> "" && $lname <> "" && $theemail <> "" && $ydept <> "#") {
         if ($pass >= 80) {
              echo "passed"; //take to congrats.php page
         }
         else {
              echo "no pass"; //take to nopass.php page
         }
    }
    else {
         echo "something is missing"; //take to the missing.php page
    }

我想要完成的是,如果用户不更改选择的值并选择禁用值以外的其他值,它应该将用户带到missing.php 页面。如果其他值是空白的,那么这可以工作,但是当涉及到 $ydept 时,它总是在 nopass.php 页面中启动。

我是否在 PHP 中正确检查了 select 的值?我认为这就是问题所在?

我尝试了以下方法,看看它是否有所作为:

$ydept = $_POST['yDept'];

但它没有。

4

1 回答 1

4

禁用选项未与表单一起提交,因此您当前正在检查:

("" <> "#") //TRUE

您可以删除“已禁用”<option>或更改 IF 语句:

if($fname <> "" && $lname <> "" && $theemail <> "" && (!empty($ydept) && $ydept <> "#"))
于 2013-06-12T16:01:25.097 回答