PHP程序很奇怪

时间:2013-11-15 22:12:22

标签: php drop-down-menu

我有一个代码,用于获取下拉列表的数据库值,并根据获取的值调整下拉列表中的值。例如:如果成员处于活动状态,则选择“活动”,如果成员处于“待处理”状态,则选择“待处理”。

但是,对于某些获取的值,代码运行起来非常有趣。虽然它获取了数据库中存在的正确值,但它显示的值不正确。例如,如果某个成员是Cut,则它仍会在Dropdown中显示Active。这不适用于所有Cut的案例。

代码是:

$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;

我真的很无能,因为其余的代码工作绝对精细!代码中是否存在问题?

1 个答案:

答案 0 :(得分:1)

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"