2013-06-16 6 views
4

enter image description hereобновите часть веб-страницы?

для быстрой справки Я приложил изображение того, что хочу. Я бы хотел обновить (изменить содержимое) без обновления всей страницы (без обновления страницы). Нажав на ссылки или кнопки в белой ячейке, вы должны получить данные из базы данных и отобразить их в красном ящике. Конечно, первое, что вы напишете в качестве ответа, будет «Ajax !!!», но поскольку я новичок в laravel framework, я хочу знать, что является лучшим способом достичь этого, должен ли я писать javascript непосредственно в представлении или в контроллере, и как это сделать через контроллер? Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

Revised вопрос, есть ли другой лучший способ другой, то те ответили

+0

Вы можете использовать PrimeFaces Ajax POLL – Makky

ответ

3

Сначала нам нужно настроить некоторые маршруты. Вы также можете сделать это с помощью контроллеров.

Route::get('home', function() 
{ 
    return View::make('home'); 
}); 

Route::get('someRoute', function() 
{ 
    return View::make('someView'); 
}); 

Для дома зрения, я бы добавить раздел скриптов:

//home.php 

<html> 
<head> 
    <script> 
    $('a.ajax').click(function(e){ 
     e.preventDefault(); 
     var pageURL = $(this).attr('href'); 
     $('#ajaxContent').load(pageURL); 
    }); 
    </script> 
</head> 
<body> 
    <div class="wrapper"> 
     <a href="{{URL::to('someRoute')}}" class="ajax">Click Here</a> 
     <div id="ajaxContent"></div> 
    </div> 
</body> 
</html> 

В случае, если вы используете лезвие шаблоны, вот реализация

//main.blade.php 

<html> 
<head> 
    @yield('styles') 
</head> 
<body> 
    <div class="wrapper"> 
     @yield('content') 
    </div> 
    @section('scripts') 
     <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> 
    @show 
</body> 
</html> 

//home.blade.php 
@extends('main') 

@section('content') 
    <a href="<?=URL::to('someRoute')?>" class="ajax">Click Here</a> 
     <div id="ajaxContent"></div> 
@stop 

@section('scripts') 
    @parent 
    $('a.ajax').click(function(e){ 
    e.preventDefault(); 
    var pageURL = $(this).attr('href'); 
    $('#ajaxContent').load(pageURL); 
    }); 
@stop 
+0

спасибо за ваш ответ, но я знаю это, я хотел знать, есть ли другой лучший способ сделать это. –

+0

Я думаю, что это зависит от использования. Если ваши шаблоны являются модулями, то есть вы будете включать фрагменты из нескольких представлений, тогда вы захотите переопределить разделы или даже создать представление, которое содержит весь ваш javascript и включить его. Если вас не интересует модульность, тогда первый вариант может быть лучше. В любом случае, ваш javascript должен быть в представлениях, а не в контроллерах. Другой альтернативой является использование iframes, но я не рекомендую его – Blessing

0

было бы лучше для вас, если вы используете jQuery сделать это обновление с помощью AJAX функциональность. и простой код может быть, как это больше о функциональности Ajax

$('a.ajax').click(function(e){ 
    e.preventDefault(); 
    var pageURL = $(this).attr('href'); 
    $('#divID-to-be-updated').load(pageURL); 
}); 

внутри JQuery может быть считан из http://jqapi.com/#p=load

Смежные вопросы