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));
}
}
你好,我照你說的做。我得到所有的JavaScript重新加載。當我檢查console.log(data。)時,我可以看到,它獲取頁面的所有源代碼。我不能得到什麼錯誤? – ytsejam 2012-08-12 21:39:25
您對'$ .get'的第一個參數是您從Ajax請求中獲得的URL。 'BASE +'#content''似乎是錯誤的(在Firebug中,你可以看到你準確得到哪個URL)。你想從href中獲得頁面。嘗試用'$(this).attr('href')'替換'BASE +'#content''。 – 2012-08-13 21:38:53