<form id="my-form">
<select id="my-select">
<option value="1">Tom</option>
<option value="2">Jerry</option>
</select>
<input type="submit" value="send data!">
</form>
public function getValue(Request $request)
{
return User::find($request->input('select_id'));
}
$(function () {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
var showUser = $('#show-user');
$('#my-form').on('submit', function () {
var select_id = $('#my-select').val();
$.ajax({
method: "POST",
url: "ajax",
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: {
"select_id": select_id
},
error: function (data) {
//something went wrong with the request
alert("Error");
},
success: function (data) {
inner = "";
data.forEach(function (el, i, array) {
inner += "<div>" + el.name + "</div>";
});
showUser.html(inner);
}
});
event.preventDefault();
});
});
Route::post('ajax','Controller@getValue');
@Mahdi Youseftabar - &gt;谢谢你,根据文档,我应该使用input()来获取请求!
问题1:错误:500(TokenMismatchException);
我做了什么?
将meta添加到:
<meta name="csrf-token" content="{{ csrf_token() }}">
我设置了标题:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
...
headers: {
'X-Auth-Token' : token
},
...
});
<div class="showUser"></div>
[已解决] Github我项目的文档: (多对多关系 - Laravel 5.3,Ajax) https://github.com/39ro/StudentSchoolProject
答案 0 :(得分:1)
你的问题在路上:
Route:post('ajax','Controller@getValue');
你在jQuery中使用post方法但是在路由中你定义了路由方法'get'...
在这种情况下,当您使用ajax请求时,laravel会回复您一个空响应
另一个问题是从请求中获取user_id,您应该在控制器中使用它:
return User::find($request->input('user_id');
答案 1 :(得分:0)
检查两件事
在js
data: {"userid" : userid}
method: "POST",
控制器中的
$value_select = User::where($request->userid)->first();
return $value_select;
现在检查回复并告诉我它是否有效
答案 2 :(得分:0)
如果您没有收到错误,结果为null,那么您可能会遗漏某些内容。
请记住,您在控制器中使用的find()函数仅搜索主键。
它是一个ajax请求,所以你不会在浏览器中看到它。要查看返回值,您应该在
中查看开发人员工具&gt;网络&gt;然后找到要查看的请求 预览和回复
答案 3 :(得分:0)
添加与Controller.php的关系
我的问题是与另外两张桌子的关系。 我用我的GitHub项目的链接更新了我的主要问题,我在那里应用了你的所有建议!谢谢大家,我解决了!
对于令牌,我解决了我在Ajax.js中添加的内容。
要从关系中检索数据,我就这样做了:
public function getValue(Request $request)
{
return User::find($request->input('select_id'))->relationship_table;
}