使用Ajax一键单击即可更改一些内容

时间:2012-08-12 20:40:39

标签: php ajax laravel

我是一名新手开发者,并开始使用Laravel进行编码。

我的问题是,我无法通过菜单点击更改此内容 我真的很困惑如何在这种情况下使用Ajax。

我的routes.php:

Route::get('articles',array('as'=>'articles','uses'=>'articles@index'));
Route::get('author/(:any)', array('as'=>'article','uses'=>'articles@view'));
Route::get('abouts',array('as'=>'abouts','uses'=>'abouts@index'));

我的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 / #content内。

我的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));
        }

}

1 个答案:

答案 0 :(得分:2)

您想要替换<div id="page">

的内容

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