使用带有laravel的ajax

时间:2016-11-26 20:38:13

标签: ajax laravel

我想知道是否可以将AjaxLaravel一起使用,而无需在.js文件中编写代码。

的script.js

$('#selectSemestres').change(function(obj){
        var anoSemestre = $(this).val();
        $.ajax({
            type: 'GET',
            url: '',
            data: ...

        });
    })  

我不知道如何获得我想要的URL(这是我当前的页面,
我只是想改变<选择>然后重新加载已经显示在页面上的数据)。

我是否必须在.php文件中编写ajax?这是一个“好习惯”吗? 我问这个是因为我在同一个.php文件中已经有了另一个脚本。

更新

按照@ohgodwhy发布的答案 现在,当ajax执行时没有任何反应。

它命中success代码,但没有任何反应,URL不会改变。是因为我正在重定向到同一页面吗?

file.php

<script type="text/javascript">
    $('#selectSemestres').change(function(obj){
        var anoSemestre = $(this).val();
        $.ajax({
            type: 'GET',
            url: '{{ route('professor') }}',
            data: { anoSemestre: anoSemestre },
            success: function(){
                console.log('HELLO WORLD');
            }

        });
    })
</script>  

myController的:

public function getProfessorList()
    {
        $professor = Professor::all();
        if( Request::ajax() )
        {
            echo 'yolo';
        }
        $semestres = Horario::distinct()->select('ano_semestre')->get()->toArray();
        return View::make('professor', compact('professor', 'semestres'));
    }

1 个答案:

答案 0 :(得分:1)

我通常做的是在我扩展的布局中添加@yield('scripts')部分。

然后在需要特定JS的子模板中,我将在那里添加。

@section('scripts')
     <script>
         //your javascript here.
     </script>
@endsection

然而,有一点需要注意。如果您在子模板中使用@includeincluded file拥有自己的javascript,则必须首先调用父级,如下所示:

@section('scripts')
    @parent
    <script>

    </script>
@endsection.