我只是试图将一个名为“Load-about.php”的页面中的div从AJAX拉到我的主页面。 我一直在关注tutsnet课程“30天学习jQuery”,但是当我正在使用CI并且我正在尝试调整这些课程时,我很难从其他页面加载内容。
所以我有我的主页:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Load</title>
<link rel="stylesheet" href="<?php echo base_url('bootstrap/css/bootstrap.min.css'); ?>" >
<style>
</style>
</head>
<body>
<a href="<?php echo site_url('Ajax/lessonTwentyThree/Load-about'); ?>">Try to make AJAX working !</a>
</br>
<a href="<?php echo site_url('Ajax/lessonTwentyThree/Load-Contact'); ?>">Contact</a>
<div class="wrap"></div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script>
(function() {
var wrap = $('div.wrap');
$('a').on('click', function(e) {
var href = $(this).attr('href');
wrap.load(href +'.container' ) ;
e.preventDefault();
});
})();
</script>
</body>
</html>
我只是调用一个非常简单的CI控制器,它只调用询问的视图 在没有链接的情况下工作时一切都很好。
但现在,我被重定向到页面而不是使用AJAX调用。为什么?为什么 e.preventDefault(); 要么 返回false; 是不是阻止链接到默认操作?
由于
编辑:感谢Jai,我发现了我的错误,一个简单的昏迷。 但是,现在,我得到“GET http://www.localhost.com/CodeIgniterJQUERY/index.php/Ajax/lessonTwentyThree/Load-Contact.container 500(内部服务器错误)”问题来自.container,因为我想指定类,Ci理解它,因为它是一个参数。
这是控制器:
类Ajax扩展了CI_Controller {
/**
* Nous allons ici nous occuper de toutes les fcts AJAX
*/
public function lessonTwentyThree($page)
{ // En fait, on a pas besoin de ca, on va directement loader la vue directement.
$this->load->view($page);
}
}
我只想从Load-Contact获取一个div到主页面。
答案 0 :(得分:2)
你必须将其移动:
(function($) {
var wrap = $('div.wrap');
$('a').on('click', function(e) {
e.preventDefault();
var href = $(this).attr('href');
wrap.load(href +'.container' ) ;
});
})(jQuery);
和您必须在点击处理程序后放置','
。
答案 1 :(得分:2)
除了Jai所说的。你有一个codeigniter 逻辑错误。
当你说:
$this->load->view($page);
这意味着codeigniter将在内部重定向到视图。在您的情况下,您需要的是获取视图内容而不是加载它。
因此,codeigniter支持函数view()
的第三个参数,要求它将视图内容作为String
。你可以这样做并发送视图加载如下:
$string = $this->load->view($page, '', true);
echo $string;
希望这能解决您的问题
答案 2 :(得分:0)
也尝试改变
(function() {
})();
到
$(function() {
});