Php 如何使用Codeigniter从另一个视图中加载视图文件,而不必通过控制器?

Php 如何使用Codeigniter从另一个视图中加载视图文件,而不必通过控制器?,php,codeigniter,templates,codeigniter-2,Php,Codeigniter,Templates,Codeigniter 2,我正在努力找到这个问题的解决方案,我需要从另一个视图中加载一个视图。我知道,通常,我只需要做: <?php $this->load->view("smthg");?> 负荷组合函数为: function loadPortfolio(fileToLoad) { $portfolioSingle.load(fileToLoad, function() { portfolioSingleH = $portfolioSin

我正在努力找到这个问题的解决方案,我需要从另一个视图中加载一个视图。我知道,通常,我只需要做:

<?php $this->load->view("smthg");?>
负荷组合函数为:

function loadPortfolio(fileToLoad) {
            $portfolioSingle.load(fileToLoad, function() {
                portfolioSingleH = $portfolioSingle.find('.container').outerHeight();
                $portfolioSingle.css({
                    'top': -portfolioSingleH
                });
                $('#portfolio').animate({ scrollTop: 0 }, "slow");
                $portfolioSingle.stop().animate({
                    'top': 0
                }, 500, 'easeOutCubic');
                $portfolioContainer.stop().animate({
                    'marginTop': portfolioSingleH
                });
                portfolioActive = true;
                bindClosePortfolio();
                bindFancybox();
                setupFlexslider();
            });
        }
如果这太复杂了,那么我怎么能简单地告诉他按id查找handlebar脚本并加载将动态生成的内容呢


谢谢

不要那样做,这是个坏主意。为此,需要从“视图”文件夹中删除.htaccess文件

相反,使用发出ajax请求的jQueryGet函数。 $.get(“main/loadCocktailRecipient/1”)

最好的方法是使用一个新的控制器返回一个包含请求数据的json对象。然后,使用$.get检索该json,最后,在该json上迭代,以便在需要时放置内容

从jQuery:

$(".cocktail .cocktail-item a").on('click', function(event) {

            event.preventDefault();

            var fileToLoad = $(this).data('file');

            if(portfolioActive) {
                closePortfolio(true, fileToLoad);
            } else {
                loadPortfolio(fileToLoad);
            }

        });
function loadPortfolio(fileToLoad) {
            $portfolioSingle.load(fileToLoad, function() {
                portfolioSingleH = $portfolioSingle.find('.container').outerHeight();
                $portfolioSingle.css({
                    'top': -portfolioSingleH
                });
                $('#portfolio').animate({ scrollTop: 0 }, "slow");
                $portfolioSingle.stop().animate({
                    'top': 0
                }, 500, 'easeOutCubic');
                $portfolioContainer.stop().animate({
                    'marginTop': portfolioSingleH
                });
                portfolioActive = true;
                bindClosePortfolio();
                bindFancybox();
                setupFlexslider();
            });
        }
$.ajax({
    url: "main/loadCocktailRecipient", //the url to retrieve the data
    data: { id: "1" }, //you can send the get parameters here
    success: success, //the data returned (your json or html)
    dataType: dataType //html, json, etc... if the dataType returned is not what you specify it will enter on a .error function. check the jquery documentation
});