次のPHP関数があります。
function pick ($fieldname, $optionvalues, $defvalue=0, $size=0)
{
$checked = $defvalue;
echo "<select name=\"$fieldname\" size=\"$size\">\n";
foreach ($optionvalues as $value)
echo " <option value = \"$value\" ".
(($value == $checked) ? ' selected ' : '') . "> $value </option>\n";
echo "</select>";
}
これで呼び出すと:
$vals = array('a','b','c','d','e');
pick ('pick2', $vals, 'c');
c
ページソースで選択済みとしてマークされていても、強調表示されません。私のページのソースは次のとおりです。
<select name="pick2" size="0">
<option value = "a" > a </option>
<option value = "b" > b </option>
<option value = "c" selected > c </option>
<option value = "d" > d </option>
<option value = "e" > e </option>
</select>
呼び出し機能を次のように変更した場合:
pick('p',$vals,'c')
想定どおりに動作します。誰かが私の機能の何が問題なのか説明できますか?