我寫了一個簡單的數組,我用它來打印一個html列表選項集,並帶有一個選定的元素。 如果我嘗試在我的頁面中打印多個列表,我的問題開始,因爲只有第一個列表打印正確,爲什麼?爲什麼這個PHP函數調用只能工作一次?
<?php
$units = array (
'0' => 'Units',
'kJ' => 'Kilojoule: kJ',
'g' => 'Grams: g',
'mg' => 'Milligrams: mg',
'mcg' => 'Micrograms: mcg, µg');
function unit_select_option ($attributes, $code = "") {
global $units;
$html = "<select title=\"Kilojoule: kJ; Grammi: g; Milligrammi: mg; Microgrammi: mcg, µg;\" $attributes>\r";
while (list($key, $name) = each($units)) {
if ($key == "0") {
$html .= " <option title=\"$name\" value='$key'>$name</option>\r";
} else if ($key == $code) {
$html .= " <option title=\"$name\" selected=\"selected\" value='$key'>$key</option>\r";
} else {
$html .= " <option title=\"$name\" value='$key'>$key</option>\r";
}
}
$html.= "</select>\r";
return $html;
}
print unit_select_option ('class="units_select"', "g");
print unit_select_option ('class="units_select"', "mg");
print unit_select_option ('class="units_select"', "mcg");
?>
該代碼應該不是什麼奇怪的,但我還沒有找到問題,因爲該頁面沒有返回任何錯誤。
html code:
<select title="Kilojoule: kJ; Grammi: g; Milligrammi: mg; Microgrammi: mcg, µg;" class="units_select">
<option title="Unità" value='0'>Unità</option>
<option title="Kilojoule: kJ" value='kJ'>kJ</option>
<option title="Grammi: g" selected="selected" value='g'>g</option>
<option title="Milligrammi: mg" value='mg'>mg</option>
<option title="Microgrammi: mcg, µg" value='mcg'>mcg</option>
</select>
<select title="Kilojoule: kJ; Grammi: g; Milligrammi: mg; Microgrammi: mcg, µg;" class="units_select">
</select>
<select title="Kilojoule: kJ; Grammi: g; Milligrammi: mg; Microgrammi: mcg, µg;" class="units_select">
</select>
好的,如果你還給我一個我的代碼的優化版本,你必須得到獎勵,謝謝你的幫助 – vitto 2010-01-17 13:53:52