>我有一个代码,它获取下拉列表的数据库值,并根据获取的值在下拉列表中选择值。例如:如果成员处于活动状态,则选择"活动",如果成员处于"挂起"状态,则选择"挂起"。
但是,对于获取的某些值,代码运行非常有趣。尽管它获取数据库中存在的正确值,但它显示的值不正确。例如,如果成员是剪切的,它仍然在下拉列表中显示活动。这并不适用于所有被切割的情况。
代码为:
$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
),或者您可能会有大小写不一致,例如 Cut
、cut
、cUt
、CUT
都会导致$selectedStatus != "Cut"