【发布时间】:2014-05-29 10:53:45
【问题描述】:
所以拿这个:
$status_choice = array();
$status_choice[] = "New Job";
$status_choice[] = "Existing Case";
现在我使用它:
dropdown("Status:","status",$status_choice,"150px");
这基本上是一个输出 html 下拉列表的函数。但是,下拉列表中没有出现数组的那些值,而是如下所示:
这里是我的 dropdown() 函数:
function dropdown($title,$name,$possible_values,$width="300px",$desc="",$onchange="") {
global $dropdown_allow_nulls;
$current_value = $GLOBALS["row_$name"];
if ($current_value == "") { $current_value = $GLOBALS["form_$name"]; }
if (is_write_lock()) {
return dropdown_readonly($title, $name, $possible_values, $width, $desc, $onchange);
}
$myonchange = "";
//if ($onchange != "") { $myonchange = "onChange=\"set_control_changed(this); $onchange\""; } else { $myonchange = "onChange=\"set_control_changed(this);\""; }
if ($GLOBALS["myclass"] != $GLOBALS["myclass1"]) { $GLOBALS["myclass"] = $GLOBALS["myclass1"]; } else { $GLOBALS["myclass"] = $GLOBALS["myclass2"]; }
$myclass = $GLOBALS["myclass"];
print "<tr class=\"$myclass\">\n";
print "<td style=\"padding-right: 10px;\">$title</td>\n";
print "<td style=\"padding-bottom: 2px; padding-top: 1px;\">\n";
print "<select name=\"$name\" $myonchange style=\"width: $width;\" id=\"form_$name\">\n";
if (is_array($possible_values)) {
if ($dropdown_allow_nulls == 1) {
$key = "";
$value = "";
if ($key == $current_value) { $selected = "selected"; } else { $selected = ""; }
print "<option value=\"$key\" $selected>$value</option>\n";
}
foreach ($possible_values as $myrow) {
$key = $myrow[0];
$value = $myrow[1];
if ($key == $current_value) { $selected = "selected"; } else { $selected = ""; }
print "<option value=\"$key\" $selected>$value</option>\n";
}
} else {
// sql query
$myquery = sql_query($possible_values);
print sql_error();
if ($dropdown_allow_nulls == 1) {
$key = "";
$value = "";
if ($key == $current_value) { $selected = "selected"; } else { $selected = ""; }
print "<option value=\"$key\" $selected>$value</option>\n";
}
while ($myrow = sql_fetch_row($myquery)) {
$key = $myrow[0];
$value = $myrow[1];
if ($key == $current_value) { $selected = "selected"; } else { $selected = ""; }
print "<option value=\"$key\" $selected>$value</option>\n";
}
}
print "</select>\n";
if ($desc) {
print "<span style=\"margin-left: 10px; color: #888888;\">$desc</span>\n";
}
print "</td>\n";
print "</tr>\n";
}
【问题讨论】:
-
您期望在迭代
$possible_values的循环中为$key和$value获得什么值?事实上,$possible_values中的每个元素都只是一个值。您是否使用自动递增数组索引作为您的$key?