0

動的ドロップダウンについて多くの質問があるのを見たので、私のものが見過ごされないことを願っています。このメソッドは、テーブルからデータを描画し、codeigniterドロップダウンを構築するために使用する配列を作成するモデルにあります。

 // method in the model
 public function house_dropdown()
 {
      $dbres = $this->db->get('house'); //used php5 method chaining
       //cycle through result and create array to be made a drop down.
      $dbarray = array();
      foreach($dbres->result_array() as $db)
      {
         $dbarray[$db['house_id']] = $db['house_name'];
       }
         return $dbarray;
}
これにより配列が作成され、コントローラーで使用され、次のようにビューに送信されます。
 $this->data['house'] = $this->gen_model->house_dropdown();
 $this->template->set($this->data)
                       ->set_partial('maincontent','partials/maincontent/admin/register')
                       ->build('layouts/default');

// creates a from element like so echo form_dropdown($house);

しかし、これはドロップダウン要素のポイントで私が正しく得るエラーです:

A PHP Error was encountered
Severity: Warning
Message: Illegal offset type in isset or empty
Filename: helpers/form_helper.php
Line Number: 319
A PHP Error was encountered
Severity: Notice
Message: Array to string conversion
Filename: helpers/form_helper.php
Line Number: 329

だから私は困惑しています!Cosフォームヘルパーにエラーが発生する可能性がなく、コードに何も表示されないことがわかっているため、どこを見ればよいかわかりません。どんな助けでもありがたいです。前もって感謝します。

PS。foreachの後に$dbarrayでvarダンプを実行しましたが、配列にデータが入力されていることが示されています。

4

1 に答える 1

4

関数に間違った数のパラメーターを渡しました。

echo form_dropdown('name_of_the_dropdown', $house, 'current_selected_item');

codeigniterドキュメントから

$options = array(
     'small'  => 'Small Shirt',
     'med'    => 'Medium Shirt',
     'large'   => 'Large Shirt',
     'xlarge' => 'Extra Large Shirt',
 );

$shirts_on_sale = array('small', 'large');

echo form_dropdown('shirts', $options, 'large');

生成されます:

<select name="shirts">
    <option value="small">Small Shirt</option>
    <option value="med">Medium Shirt</option>
    <option value="large" selected="selected">Large Shirt</option>
    <option value="xlarge">Extra Large Shirt</option>
</select>

参照: フォームヘルパー

于 2012-07-13T23:03:08.690 に答える