下拉菜单选项,只有当$_SESSION变量设置时才使其进入数据库


dropdown menu option only making it to database when $_SESSION variable set

tl,dr: if(isset($_SESSION["school"])) == true,则有效,否则无效

所以在我的首页,有一个下拉菜单,设置$_SESSION["school"],如果用户决定他们需要更多关于他们当地分支机构的信息。然后,我要确保他们在注册时设置正确。所以,我有一个下拉菜单,显示$_SESSION["学校"],如果它存在,然后显示下面的所有分支,以防他们需要改变。当$_SESSION["school"]不存在时,我希望它只显示学校列表,而忽略$_SESSION["school"]。

这段代码发生的情况是,如果设置了$_SESSION["school"],则信息将进入数据库,即使您在注册期间更改了下拉选项。如果没有设置$_SESSION["school"],即使在注册时设置,信息也不会进入数据库。更有趣的是,我对这个空白进行了验证,这意味着页面正在识别菜单!= "…如果$_SESSION["school"]之前没有设置,那么信息就不会一直到数据库。我认为下面的代码是相关的代码,因为这是我使用$_SESSION["school"]设置菜单选项的地方,但如果你需要的话,我可以发布一些其他的部分。

schoolsList.php

<?php
if(isset($_SESSION['school']) && $_SESSION['school']==true) {
    echo
    '<option value="'.$_SESSION["school"].'">'.$_SESSION["school"].'</option>';
}
echo
'<option value=""></option>
<option value="Indiana University">Indiana University</option>
<option value="Purdue University">Purdue University</option>';
?>

in my form:

<select 
                            class="school"
                            id="school"
                            name="school"
                            >';
                    include "schoolsList.php";
                echo
                '</select>'; 
// will always validate to true except when $_SESSION["school"] is not set  
if($_SESSION["school"])

这应该给你留下更多的空间来改进你的代码。

if(isset($_SESSION['school']) && $_SESSION['school']==true)
{
    // do something here
}

PHP允许你设置变量和在不同类型之间切换,所以这些计算可能会很棘手。