AJAX在这里不起作用,还有一些问题


AJAX not working here and some questions?

经过大量研究,我发现Laravel非常好。我有一个带有动画的主页打开,之后菜单和页面内容分成每一侧。单击链接后,我只想更改内容。我尝试了jQuery/ajax。但是我有一个问题,我希望内容和侧边栏菜单中的链接更改内容。你能告诉我怎么做吗?

这是我的阿贾克斯.js :

 $(document).ready( function() {
    $("#content ul li a").click( function(e){
         e.preventDefault();
         $('#page').load(this.href);
         return false;
    });
});

这是我的文章控制器:

<?php
class Articles_Controller extends Base_Controller
{
    public $restful = true;
    public $layout = 'layouts.default';
    public function get_index(){
        $this->layout->title = "Anasayfa";
        $this->layout->content = View::make('articles.index')
             ->with('articles',Article::order_by('id')->get());
    }
    public function get_view($id){
        $this->layout->title = "Hizmetlerimiz";
        $this->layout->content = View::make('articles.view')
             ->with('article',Article::find($id));
    }
}

我的default.blade.php

<div id="wrapper">
    <div id="page">
        {{ $content }}
    </div>
    <div id="sidebar">
        <div id="sidebar-content">
        <!-- MENU -->
        <ul id="menu">
            <li class="current"><a href="#">ANASAYFA</a></li>
            <li><a href="#">HAKKIMIZDA</a></li>
// ...

我的index.blade.php

<div id="content">
    @foreach($articles as $article)
    <ul class="blog-medium">
        <li>    
            <div class="blog-medium-text">
                <h1><a href="./post.html">{{$article-> title }} </a></h1>
                <p class="blog-medium-excerpt"><p>Tek kişilik sınıflarda YGS - LYS hazırlık programımızda dersler özel&#8230;<br />
                {{ HTML::link_to_route('article','devamı', array($article->id)) }}</p>
            </div>
        </li>
    </ul>
    @endforeach
</div>

我的view.blade.php

<div id="content">
    <h1>{{$article->title}}</h1>
    <p>{{$article->content}}</p>
</div>

我认为问题出在你的Jquery上

$(function() 
{
    $("#content ul li a").click( function()
    {
        var url = $(this).attr('href'); // Get href value from <a>
        $('#page').load(url);
        return false; // No need for e.preventDefault() if return false;
    });
});

假设 href 值是控制器方法的完整路径或相对路径,这应该有效。

当您使用 restful 控制器时,请考虑 AJAX 能够使用 GET 和 POST HTTP 方法。您可以将所有 POST 和 GET 数据分离到单独的函数中,还可以使用以下方法检查请求是否是 Laravel中的 Ajax:

if (Request::ajax())
{
    ... // The request is AJAX, do ajax stuff
    return Response::json(array('action' => 'complete'));
}