[PHP-users 1999] Re: ドロップダウンリスト作成について

Osamu Shigematsu php-users@php.gr.jp
Wed, 12 Sep 2001 21:55:18 +0900


重松です。

> アドバイスありがとうございます。
> はい,selectした結果を<table>に出力はよく使います。
> 今回は,結果(ドロップダウンリスト)を1つの文字列変数として格納出来れば,
> それを返すユーザー関数を作り,ライブラリー化したい・・・・・と考えています。
> とりあえず,<table>の時の処理を応用してやってみます。

とりあえず、phplib の db_sql でも継承して、
next_record() で各 <option> .... </option> でも返すようにすればいいだけでは?

class hoge extends db_sql{
    /* host, user, etc などを設定したサブクラス */
}

class hogehoge extends hogehoge
    /* 特定の sql を実行するサブクラス */
    function next_record(){
        if($result =hoge::next_record()){
            extract($this->Record());
            $choosed = (1 == $v1) ? ' selected' : '';
            $result = "<option value='$v1'$choosed>$v1 $v2 $v3</option>\n";
        }
        return $result;
    }
}

if(!$db->query($sql)){
    // 検索失敗!
    include('failed.ihtml');
}else{
    $rows = '<select name="hoge">
    while($row = $db->next_record)
        $rows .= $row;
    $rows .= '</option>';
    echo $rows;
}

-- 
Osamu Shigematsu

http://www.ravi.ne.jp/%7eshige/
mailto:shige@ravi.ne.jp