PHP & JavaScript Room :: 設置サンプル

実行結果

ソース

<?
/* [関数名] make_sel_opts_kv
 * [機 能] 連想配列からプルダウンを生成
 * [説 明] 連想配列のキーを1グループとしてoptgroupタグで括る。
 *     そのキーの値である配列のキーをoptionのvalueに、値をoptionのtext
 *     としてプルダウンを生成したHTML文を返す。
 * [引 数]
 * @param array $array 連想配列
 * @param string $selected デフォルトで選択するインデックス番号(デフォルトは'0')
 * @param string $funcChk OnChangeイベントなどを記述(デフォルトは'')
 * [返り値]
 * @return string $htm 生成されたHTML文
 *     エラーの場合はFALSEを返す
*/

function make_sel_opts_kv($array$selected="0"$funcChk=""){
    if (!is_array($array)) return false;
    $htm "<select ".$funcChk.">\n";
    foreach ($array as $k1=>$v1) {
        if (is_array($v1) && (count($v1)>1)){
            $htm .= "<optgroup label='".$k1."'>\n";
            foreach($v1 as $k2=>$v2){
                $htm .= "<option value='".$k2."'".(($k2==$selected) ? " selected" "")." style='margin-left:1em;'>".$v2."</option>\n";
            }
            $htm .= "</optgroup>\n";
        }else{
            foreach($v1 as $k2=>$v2){
                $htm .= "<option value='".$k2."'".(($k2==$selected) ? " selected" "").">".$v2."</option>\n";
            }
        }
    }
    $htm.="</select>\n";
    return $htm;
}
?>

<form>
<?
$food_ary = Array(
Array(
    ""=>"▼選択してください▼"),
    "fruit"=>Array("a"=>"apple""b"=>"banana""g"=>"grape"),
    "vegitable"=>Array("p"=>"potato""t"=>"tomato"),
    Array("m"=>"milk")
);

$funcChk="onChange=\"alert(this.value+'='+this[this.selectedIndex].text)\"";
echo make_sel_opts_kv($food_ary"p"$funcChk);
?>
</form>

polarized women