我在这个链接上找到了一个关于如何在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'视图'文件)
非常感谢任何帮助。
答案 0 :(得分:0)
CodeIgniter需要提供sections.html
和external.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并且您的页面内容将不会更新。