在jQuery中通过AJAX加载内容(CodeIgniter视图)

时间:2012-05-20 00:38:16

标签: jquery ajax codeigniter

我在这个链接上找到了一个关于如何在jQuery中使用AJAX的一个很好的例子: http://yensdesign.com/2008/12/how-to-load-content-via-ajax-in-jquery/

我将index.html文件中的内容添加到我的view.php文件中(我正在使用CodeIgniter)。

一切看起来都不错,但是当你想切换到另一个部分时,页面内容不会改变(与之前显示的内容相同)。

我认为可能存在问题,menu.js文件将数据传递给CodeIgniter view.php文件?

您能否就如何解决此问题向我提出任何建议?我希望这对其他人也有帮助。

Menu.js文件:

$(document).ready(function(){
//References
var sections = $("#menu li");
var loading = $("#loading");
var content = $("#content");

//Manage click events
sections.click(function(){
    //show the loading bar
    showLoading();
    //load selected section
    switch(this.id){
        case "home":
            content.slideUp();
            content.load("sections.html #section_home", hideLoading);
            content.slideDown();
            break;
        case "news":
            content.slideUp();
            content.load("sections.html #section_news", hideLoading);
            content.slideDown();
            break;
        case "interviews":
            content.slideUp();
            content.load("sections.html #section_interviews", hideLoading);
            content.slideDown();
            break;
        case "external":
            content.slideUp();
            content.load("external.html", hideLoading);
            content.slideDown();
            break;
        default:
            //hide loading bar if there is no selected section
            hideLoading();
            break;
    }
});

//show loading bar
function showLoading(){
    loading
        .css({visibility:"visible"})
        .css({opacity:"1"})
        .css({display:"block"})
    ;
}
//hide loading bar
function hideLoading(){
    loading.fadeTo(1000, 0);
};

});

来自javascript的动画正在运行(加载/内容/部分),但真实内容未从html文件加载。

正如我所说,看起来这个脚本无法将内容加载到view.php文件(这是CodeIgniter'视图'文件)

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

CodeIgniter需要提供sections.htmlexternal.html。默认情况下不会这样做。

假设view.php用于网址http://example.com/index.php/mycontroller/view,则jQuery将发送以下网址的请求。

http://example.com/index.php/mycontroller/sections.html
http://example.com/index.php/mycontroller/external.html

除非您告诉CodeIgniter如何处理这些请求,否则CodeIgniter将返回404并且您的页面内容将不会更新。