double0201 2012-05-23 14:51
浏览 27
已采纳

Codeigniter库类的公共变量不起作用

Here is a snippet of my code:

<?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;
}

Controller:

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

How it is being loaded in controller: function _construct() { parent::_construct(); $this->load->library('tank_auth'); $this->load->library('sample'); }

When the select loads on the screen, nothing is filled in. No name, no style etc.. What am I doing wrong?

  • 写回答

1条回答 默认 最新

  • dqlk31541 2012-05-23 14:53
    关注

    You need to reference them properly;

    In the library;

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

    In your controller it would be something like $this->sample->name or $this->sample->style

    But the $select is not an attribute or being returned so will not be avaiable.

    UPDATE - based on comments controller;

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

    ANOTHER UPDATE:

    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;
    }
    

    I would then change set_data() to private instead of public.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行