2012-08-12 59 views
0

我是一个新手开发者,并开始使用laravel来编码。我的问题是,我无法通过菜单点击来改变这个内容。我真的很困惑如何在这种情况下使用ajax。你能帮我用这个ajax代码吗?

我routes.php文件:

Route::get('articles',array('as'=>'articles','uses'=>'[email protected]')); 
Route::get('author/(:any)', array('as'=>'article','uses'=>'[email protected]')); 
Route::get('abouts',array('as'=>'abouts','uses'=>'[email protected]')); 

我default.blade.php(不久包含脚本)

<!DOCTYPE html> 
<head> 
    <title>{{$title}}</title> 
    {{ HTML::script('js/jquery.min.js') }} 
    {{ HTML::script('js/ajax.js') }} 
    ....... 
    </head> 
    <body> 
    ........ 
    <div id="wrapper"> 
    <div id="page"> 
       {{ $content }} 
    </div> 
    <!-- SIDEBAR --> 
    <div id="sidebar"> 
    <div id="sidebar-content"> 

    <ul id="menu"> 
    <li class="current"><a href="<?php echo URL::to_route('articles'); ?>">ANASAYFA</a></li> 
    <li><a href="<?php echo URL::to_route('abouts'); ?>">HAKKIMIZDA</a></li> 
....... 
    <script type="text/javascript">var BASE = "<?php echo URL::base(); ?>";</script> 
</body> 
</html> 

我的意见是内部DIV /#的内容。

我ajax.js:

$(document).ready(function() { 
    $('#sidebar-content ul li a').click(function(e) { 
     // prevent the links default action 
     // from firing 
     e.preventDefault(); 
     // attempt to GET the new content 
     $.get(BASE +'#content', function(data) { 
      $('#content').html(data); 
      console.log(data); 

     }); 
    }) 
}); 

我的文章控制器:

<?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)); 
     } 

} 

回答

2

要替换的<div id="page">内容。

我想你应该写$('#page').html(data);

+0

你好,我照你说的做。我得到所有的JavaScript重新加载。当我检查console.log(data。)时,我可以看到,它获取页面的所有源代码。我不能得到什么错误? – ytsejam 2012-08-12 21:39:25

+0

您对'$ .get'的第一个参数是您从Ajax请求中获得的URL。 'BASE +'#content''似乎是错误的(在Firebug中,你可以看到你准确得到哪个URL)。你想从href中获得页面。尝试用'$(this).attr('href')'替换'BASE +'#content''。 – 2012-08-13 21:38:53