【问题标题】:Pass query string to same method in controller in codeigniter将查询字符串传递给codeigniter中控制器中的相同方法
【发布时间】:2018-06-02 07:44:22
【问题描述】:

我正在尝试重新加载页面内容。通过链接按钮在 PHP 中过滤 通过将一些值通过查询字符串传递给控制器​​方法。 控制器方法从我传递查询字符串的位置加载同一页面。 但是视图没有重新加载。 但是,如果我将控制器方法称为其他视图,则它可以正常工作。 这是我的代码

mainview.php

<a href="<?=base_url()?>maincontroller?language=English">English</a>

主控制器.php

这是控制器的索引方法。

    $movielanguage=$this->input->get('language');
    if(!empty($movielanguage))
        {
            $moviedata['popularmovies']=$this->main_model- 
            >getmoviebylanguage($movielanguage);
        }

    $moviedata['allmovies']=$this->main_model->getAllMovies();
    $this->load->view('home/mainview.php',$moviedata);
}

此处视图不刷新其内容 我该如何解决这个问题

【问题讨论】:

  • 请始终通过提供一些 cmets 来回应答案,或者,如果对您有帮助,请将其标记为绿色并点赞,这是感谢所有程序员的最佳方式

标签: php codeigniter-3


【解决方案1】:

希望对您有所帮助:

首先如果你想要一个单一的视图,应该把你的代码放在if else 条件中,然后将你的数据分配到同一个变量中

你的代码应该是这样的:

public function index()
{
    $movielanguage=$this->input->get('language');
    if(! empty($movielanguage))
    {
        $moviedata['movies']=$this->main_model->getmoviebylanguage($movielanguage);
    }
    else
    {
        $moviedata['movies']=$this->main_model->getAllMovies();
    }

    $this->load->view('home/mainview.php',$moviedata);
}

第二:如果你想为不同类别的电影添加不同的视图

你可以这样做:

public function index()
{
    $movielanguage=$this->input->get('language');
    if(! empty($movielanguage))
    {
        $moviedata['popularmovies']=$this->main_model->getmoviebylanguage($movielanguage);
        /*popularview is just an example*/
        $this->load->view('home/popularview.php',$moviedata);

    }
    else
    {
        $moviedata['allmovies']=$this->main_model->getAllMovies();
        /*allview is just an example*/
        $this->load->view('home/allview.php',$moviedata);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-02
    • 2014-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多