0

これが私のコードの抜粋です:

<?php

if (!defined('BASEPATH')) {
exit('No direct script access allowed');
}

class sample{

function __construct() {
    $this->ci = & get_instance();
    }

public $name;
public $style;


function set_data($data)
{
    /* List of parameters that you can set */

    $this->name = (isset($data['name']) ? $data['name']: ''); // Set select name
    $this->style = (isset($data['style']) ? $data['style']: ''); // Set select style

}

function select_both_dropdown()
{
    $select = '<select name="'.$this->name.'" class="chzn-select" style="'.$this->style.'">';
    $select .= '<option value=""></option>';
    $select .= '</select>';
return $select;
}

コントローラ:

$data['select'] = $this->sample->select_both_dropdown(array(
        'name' => 'eventselect',
        'style' => 'min-width: 247px;'
    ));

コントローラへのロード方法:function _construct( ){parent :: _construct(); $ this-> load-> library('tank_auth'); $ this-> load-> library('sample'); }

選択が画面に読み込まれると、何も入力されません。名前やスタイルなどは表示されません。何が問題になっていますか?

4

1 に答える 1

2

それらを適切に参照する必要があります。

図書館で;

// as you have done
$this->select = 'foo';

あなたのコントローラーでは、それは次のようなものになり$this->sample->nameます$this->sample->style

ただし、$ selectは属性でも返されるものでもないため、使用できません。

UPDATE-コメントコントローラーに基づく;

$this->sample->set_data(array(
        'name' => 'eventselect',
        'style' => 'min-width: 247px;'
    ));
$data['select'] = $this->sample->select_both_dropdown();

別の更新

function select_both_dropdown($data)
{
    $this->set_data($data);
    $select = '<select name="'.$this->name.'" class="chzn-select" style="'.$this->style.'">';
    $select .= '<option value=""></option>';
    $select .= '</select>';
return $select;
}

次に、set_data()をpublicではなくprivateに変更します。

于 2012-05-23T14:53:36.987 に答える