gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 00:42:42 25 4
gpt4 key购买 nike

如何使用 ajax 检索数据?我有我的 ajax 代码,我在从数据库中检索记录时一直在我的一些项目中使用它,但不知道如何在 laravel 5 中制作它,因为它有路由和 Controller 。

我有这个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);
}
});
});

在我的 Controller 中,我声明了 2 个 eloquent 模型,模型 1 用于 branchname 表,模型 2 用于 employees 表

use App\branchname;
use App\employees;

这样我就可以像下面这样检索数据

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

如何返回我从员工表中提取的记录?从 ajax 首先与 Controller 通信并返回对 ajax post 请求的响应的路由进行布线?

任何帮助、建议、建议、想法、线索都将不胜感激。谢谢!

PS:我是 Laravel 5 的新手。

最佳答案

首先,在您的 <head> 中添加以下条目你的部分Master Layout :

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

这将添加 _token在您看来,您可以将其用于 post and suchlike请求,然后在公共(public) JavaScript 中为全局 ajax 设置添加以下代码每次请求时加载的文件:

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

因此,您无需担心或添加 csrf_token自己为需要这个的方法 _token .现在,对于发布请求,您可以使用通常的方式来制作 Ajax。请求您的Controller使用 jQuery ,例如:

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

在这里,url应该匹配 url您为员工声明的路线,例如,如果您声明了这样的路线:

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

然后,employeesurl并返回 json响应填充 select来自您的 Controller 的元素, 因此所需的代码(包括 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]);
}

希望你明白了。

关于php - laravel 5 简单的 ajax 从数据库中检索记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30154112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com