我想知道是否可以将Ajax
与Laravel
一起使用,而无需在.js文件中编写代码。
$('#selectSemestres').change(function(obj){
var anoSemestre = $(this).val();
$.ajax({
type: 'GET',
url: '',
data: ...
});
})
我不知道如何获得我想要的URL
(这是我当前的页面,
我只是想改变<选择>然后重新加载已经显示在页面上的数据)。
我是否必须在.php
文件中编写ajax?这是一个“好习惯”吗?
我问这个是因为我在同一个.php文件中已经有了另一个脚本。
更新
按照@ohgodwhy发布的答案 现在,当ajax执行时没有任何反应。
它命中success
代码,但没有任何反应,URL不会改变。是因为我正在重定向到同一页面吗?
<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>
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'));
}
答案 0 :(得分:1)
我通常做的是在我扩展的布局中添加@yield('scripts')
部分。
然后在需要特定JS的子模板中,我将在那里添加。
@section('scripts')
<script>
//your javascript here.
</script>
@endsection
然而,有一点需要注意。如果您在子模板中使用@include
,included file
拥有自己的javascript,则必须首先调用父级,如下所示:
@section('scripts')
@parent
<script>
</script>
@endsection.