table->add_row() にて form_dropdown() を組み込む

21 views
Skip to first unread message

Seiichi Yoshida

unread,
Jul 25, 2016, 10:54:37 AM7/25/16
to codeigniter_jp
皆さま、はじめまして。

codeigniter を使い始めて 1ヵ月 死闘を繰り広げております。
以下のコード(動かない)にて、generate() にて テーブル内に <select> ... を生成しようとしております。

        foreach($list as $key=>$item){
            $dropdown = "<?php echo form_dropdown(
                code, 
                array('1' => 'foo', '2' => 'bar'), 
                '1'); ?>";
            $this->table->add_row(
                $dropdown
            );
        }
        $table = $this->table->generate();

$dropdown がうまく展開されません・・・。
書きっぷりというか、そもそもできるのか?というのがありますが、
form_dropdown ヘルパ を使わずに直接 "<select> ... </select" を書くべきでしょうか。
あまりMLを頼ったことがないのですが、よろしくお願いします。

吉川徹郎

unread,
Jul 25, 2016, 12:10:07 PM7/25/16
to Seiichi Yoshida, codeigniter_jp
Seiichi Yoshida様

お世話になっております。
吉川でございます。

==========

        foreach($list as $key=>$item){
            $dropdown = "<?php echo form_dropdown(
                code, 
                array('1' => 'foo', '2' => 'bar'), 
                '1'); ?>";
            $this->table->add_row(
                $dropdown
            );
        }
        $table = $this->table->generate();
==========

上記コードにつきまして、こちらは$dropdown変数にPHP開始タグから終了タグの文字列を代入してしまっているかと思われます。
また、codeの部分が変数なのかはわかりかねますのでcodeがstringだと仮定した場合、下記のコードの様になるかと思われます。

==========

foreach ( $list as $key => $item )
{
    // form_helperのform_dropdown関数の返り値のstringをdropdown変数に代入
    $dropdown = form_dropdown('code', ['1' => 'foo', '2' => 'bar'], '1');
    // dropdown変数に入っているselectタグのstringをadd_rowメソッドに渡す。
    $this->table->add_row($dropdown);
}
$table = $this->table->generate();
==========

また、tableクラスのadd_rowメソッドは引数がmixedかつ渡す配列のキーによって挙動が変化しますので
下記URLをご参照頂ければ幸いでございます。


何卒よろしくお願い申し上げます。

2016年7月25日 23:54 Seiichi Yoshida <seiic...@gmail.com>:

--
このメールは Google グループのグループ「codeigniter_jp」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには codeigniter_j...@googlegroups.com にメールを送信してください。
このグループに投稿するには codeign...@googlegroups.com にメールを送信してください。
このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/codeigniter_jp/19d30aae-19c4-4761-83b5-882a760e65fd%40googlegroups.com にアクセスしてください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

Seiichi Yoshida

unread,
Jul 26, 2016, 7:49:24 AM7/26/16
to codeigniter_jp, seiic...@gmail.com
吉川 様

お世話になります、吉田です。
ご連絡いただきありがとうございます。

ご指摘の通りPHP開始タグから終了タグの文字列を代入してしまっている状態で表示されております。
どのような設定をすることで<select>...</select>が画面に展開されるのかの設定の仕方がわかりませんでした。
仕方がなくタグをadd_row()に渡すことで回避するようにしておりますが、吉川様のコードを試させていただきます。
まだまだ勉強&試行錯誤が不足しておりますががんばります。

お教えいただきありがとうございました。


2016年7月26日火曜日 1時10分07秒 UTC+9 yoshikawa:
Reply all
Reply to author
Forward
0 new messages