PHP程序很奇怪


PHP program weird

>我有一个代码,它获取下拉列表的数据库值,并根据获取的值在下拉列表中选择值。例如:如果成员处于活动状态,则选择"活动",如果成员处于"挂起"状态,则选择"挂起"。

但是,对于获取的某些值,代码运行非常有趣。尽管它获取数据库中存在的正确值,但它显示的值不正确。例如,如果成员是剪切的,它仍然在下拉列表中显示活动。这并不适用于所有被切割的情况。

代码为:

$resultDDM  = '<select name="team$membershipID" width="150" onchange="window.location = ';
    $resultDDM .= "'changemembershipstatus.php?id='+this.value+'&return='+window.location;";
    $resultDDM .= '">';
    $resultDDM .= '<option value="' . $membershipID . '--active"';
    if ($selectedStatus == 'active'){ 
            echo "Bad!";
        $resultDDM .= ' selected';
    }
    $resultDDM .= '>Active</option>';
    $resultDDM .= '<option value="' . $membershipID . '--inactive"';
    if ($selectedStatus == 'inactive') {
        echo "Hello";
        $resultDDM .= ' selected';
    }
    $resultDDM .= '>Inactive</option>';
    $resultDDM .= '<option value="' . $membershipID . '--cut"';
    if ($selectedStatus == 'cut'){
        echo "Hi!";
        $resultDDM .= ' selected';
        }
    $resultDDM .= '>Cut</option>';
    $resultDDM .= '<option value="' . $membershipID . '--pending"';
    if ($selectedStatus == 'pending') {
        echo "No";
        $resultDDM .= ' selected';
    }
    $resultDDM .= '>Pending</option>';
    $resultDDM .= '</select>';
    echo $resultDDM;
    return $resultDDM;

我真的一无所知,因为其余代码绝对可以正常工作!代码中是否存在问题?

For eg, if a member is Cut, it still shows Active in the Dropdown. This is not applicable to all the cases which are Cut.查看您的代码,您希望cut具有选定的值...

几个想法...对我来说,有两种可能性可以解释为什么你会得到不一致的结果。

1)您在选择框中获得多个选定值。当您将每个option放在其自己的if语句中时,您的数据可能会返回两种或更多情况,即您将selected放入标签中(发布生成的 HTML、生成$selectedStatus的代码,甚至可能是您的数据示例)。

2)您的Cut值也可能不一致,您可能在与$selectedStatus进行比较的字符串的两端都有空格(在这种情况下,您应该在定义变量时使用trim),或者您可能会有大小写不一致,例如 CutcutcUtCUT都会导致$selectedStatus != "Cut"