0

我只是想用 AJAX 将一个名为“Load-about.php”的页面中的 div 拉到我的主页上。我一直在学习 tutsnet 课程“学习 jQuery 的 30 天”,但由于我正在使用 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(); 或返回假;是不是阻止链接到他们的默认操作?

谢谢

编辑:感谢 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 到主页。

4

3 回答 3

2

你必须向上移动它:

(function($) {
    var wrap = $('div.wrap');

    $('a').on('click', function(e) {
       e.preventDefault(); 
       var href = $(this).attr('href');
       wrap.load(href +'.container' ) ;
    });
})(jQuery);

并且您必须放置一个','点击后处理程序

于 2013-01-15T11:56:32.817 回答
2

除了杰所说的。你有一个codeigniter逻辑错误。

当你说:

$this->load->view($page);

这意味着 codeigniter 将在内部重定向到视图。在您的情况下,您需要取回视图内容而不是加载它。

因此,codeigniter 支持第三个参数,该函数view()要求它获取视图内容为String. 您可以这样做并发送要加载的视图,如下所示:

$string = $this->load->view($page, '', true);
echo $string;

希望这能解决你的问题

于 2013-01-15T13:42:14.533 回答
0

也尝试改变

(function() {


})();

$(function() {


});
于 2013-01-15T12:00:40.057 回答