微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – laravel 5简单的ajax从数据库中检索记录

如何使用ajax检索数据?我有一些我在我的一些项目中使用的ajax代码,当从数据库中检索记录但不知道如何在laravel 5中进行,因为它有路由和控制器.

我有这个HTML

<select name="test" id="branchname">
    <option value="" disabled selected>Select first branch</option>
    <option value="1">branch1</option>
    <option value="2">branch2</option>
    <option value="3">branch3</option>
</select>

<select id="employees">
    <!-- where the return data will be put it -->
</select>

和ajax

$("#branchname").change(function(){
    $.ajax({
        url: "employees",
        type: "post",
        data: { id : $(this).val() },
        success: function(data){
            $("#employees").html(data);
        }
    });
});

在我的控制器中,我宣布了两个雄辩的模型,模型1用于branchname表,模型2用于员工表

use App\branchname;
use App\employees;

所以我可以检索数据(参见下文)

public function getemployee($branch_no){
    $employees = employees::where("branch_no", '=', $branch_no)->all();
    return $employees;
}

如何返回我从employees表中提取的记录?从ajax首先与控制器通信的路由连接并返回对ajax post请求的响应?

任何帮助,建议,建议,想法,线索将不胜感激.谢谢!

PS:我是Laravel 5的新手.

解决方法:

首先,在< head>中添加以下条目主布局的一部分:

<Meta name="csrf-token" content="{{ csrf_token() }}" />

这将在您的视图中添加_token,以便您可以将其用于发布和类似请求,然后在每个请求上加载的公共JavaScript文件添加以下用于全局ajax设置的代码

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('Meta[name="csrf-token"]').attr('content')
    }
});

因此,对于需要此_token的方法,您无需担心或自己添加csrf_token.现在,对于post请求,您可以使用常规方法使用jQuery向Controller发出Ajax请求,例如:

var data = { id : $(this).val() };
$.post(url, data, function(response){ // Shortcut for $.ajax({type: "post"})
    // ...
});

在这里,url应匹配员工的路由声明的url,例如,如果您已声明这样的路由:

Route::post('employees/{branch_no}', 'EmployeeController@getemployee');

然后,employees是url并返回json响应以填充Controller中的select元素,因此下面给出了所需的代码(包括javaScript):

$.post('/employees/'+$(this).val(), function(response){
    if(response.success)
    {
        var branchName = $('#branchname').empty();
        $.each(response.employees, function(i, employee){
            $('<option/>', {
                value:employee.id,
                text:employee.title
            }).appendTo(branchName);
        })
    }
}, 'json');

在Controller中,您应该发送json_encoded数据,例如:

public function getemployee($branch_no){
    $employees = employees::where("branch_no", $branch_no)->lists('title', 'id');
    return response()->json(['success' => true, 'employees' => $employees]);
}

希望你明白了.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐