我正在尝试生成日历并几乎拥有它,但是当我单击下一个或上一个链接时,日历不会显示 - 否则它是正确的。当我点击下一个网址时,地址栏会显示正确的网址,但下个月不会显示。
这是我的代码:
class Poll_controller1 extends skylark {
function poll_home()
{
$this->add_to_center(POLL,"poll_view1");
$this->load_lcr_template();
$prefs = array (
'show_next_prev' => TRUE,
'next_prev_url' => 'http://skylarkv2/index.php/poll_controller1/show'
);
$this->load->library('calendar', $prefs);
}
function show()
{
echo $this->calendar->generate($this->uri->segment(3), $this->uri->segment(4));
}
我犯错了还是错过了什么?
答案 0 :(得分:1)
从控制器
尝试此操作 public function display($year = null, $month = null)
{
$config = array(
'show_next_prev' => 'TRUE',
'next_prev_url' => base_url().'calendarC/display'
);
$this->load->library('calendar', $config);
$data['calendar'] = $this->calendar->generate($year, $month);
$this->load->view('calendar', $data);
}
答案 1 :(得分:0)
最有可能的是,您只需要在生成它的同一范围内初始化calendar class。您设置的方式show()
不知道如何在poll_home()
中初始化类。尝试这样的事情:
function show()
{
$prefs = array (
'show_next_prev' => TRUE,
'next_prev_url' => 'http://skylarkv2/index.php/poll_controller1/show'
);
$this->load->library('calendar', $prefs);
echo $this->calendar->generate($this->uri->segment(3), $this->uri->segment(4));
}
$this->uri->segment(3)
和$this->uri->segment(4)
也有可能不是您认为的那样,仔细检查这些值是否正确。如果您正在进行任何路由,则可能需要使用$this->uri->rsegment()
代替(请注意 r )。