2012-08-12 4 views
0

나는 초보 개발자이며 laravel을 사용하여 코드를 작성하기 시작했습니다. 내 문제는, 나는이 컨텐트를 메뉴 클릭으로 바꿀 수 없다는 것이다. 나는이 상황에서 아약스를 사용하는 방법에 대해 정말로 혼란 스럽다.이 아약스 코드로 나를 도울 수 있습니까?

내 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> 

내보기는 사업부/# 내용의 내부입니다.

내은 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

안녕하십니까. 내 모든 자바 스크립트가 다시로드됩니다. 내가 볼 수있는 console.log (data.)를 확인하면 페이지의 모든 소스 코드를 가져옵니다. 나는 틀린 것을 얻을 수 없다? – ytsejam

+0

'$ .get'에 대한 첫 번째 인수는 Ajax 요청에서 얻은 URL입니다. 'BASE + '# content''는 틀린 것 같습니다 (Firebug에서는 정확히 어떤 URL을 얻을 수 있는지 알 수 있습니다). href에서 페이지를 가져오고 싶습니다. 'BASE + '# content''를'$ (this) .attr ('href ')'로 대체하십시오. –

관련 문제