我有一个代码,用于获取下拉列表的数据库值,并根据获取的值调整下拉列表中的值。例如:如果成员处于活动状态,则选择“活动”,如果成员处于“待处理”状态,则选择“待处理”。
但是,对于某些获取的值,代码运行起来非常有趣。虽然它获取了数据库中存在的正确值,但它显示的值不正确。例如,如果某个成员是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;
我真的很无能,因为其余的代码工作绝对精细!代码中是否存在问题?
答案 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
在定义变量时)或者你可能有案例不一致,例如Cut
,cut
,cUt
,CUT
这些都将导致$selectedStatus != "Cut"