4

在此处输入图像描述

为了快速参考,我附上了我想要的图片。我想更新(更改内容)而不更新整个页面(不刷新页面)。单击白框上的链接或按钮应从数据库中获取数据,并将其显示在红框中。当然,作为答案,您首先要写的是“Ajax !!!”,但由于我是新手laravel framework,我想知道实现这一目标的最佳方法是什么,我应该javascript直接在视图中还是在控制器,以及如何通过控制器来做到这一点?如果您需要更多信息,请告诉我。

修改后的问题,除了回答的问题之外,还有其他更好的方法吗

4

2 回答 2

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
于 2013-06-16T20:03:44.747 回答
0

jQuery如果您使用ajax 功能进行此更新,那对您来说会更好。一个简单的代码可以是这样的

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

更多关于 jQuery 中的 ajax 功能可以从http://jqapi.com/#p=load阅读

于 2013-06-16T17:58:44.237 回答