【发布时间】:2018-04-17 20:27:41
【问题描述】:
您好,我的更新有这个问题,所以这是我的刀片代码:
<div class="form-group floating-label" id="role_colaboration1">
<select name="{{$role}}[]" id="role"
class="form- control">
<option value="2">Co-author</option>
<option value="3">Contributor</option>
<option value="4">Guest</option>
</select>
</div>
这里有我的 ajax 代码
$(document).ready(function(){
$("#role").change(function(){
var role_value = $(this).val();
var bank_id =<?php echo json_encode($bank_id); ?>;
$.ajax({
method: "POST",
url: "{{ url('/banks/change-role-in-bank') }}",
data: {
_token: "{{ csrf_token() }}",
role_value: role_value,
bank_id: bank_id
},
success: function () {
$("select[id=role][value=" + role_value + "]");
},
error: function () {
console.log("error");
}
});
});
});
这是我的路线:
Route::post('/change-role-in-bank', 'BankController@changeRoleInBank');
这里有我的控制器:
public function changeRoleInBank(){
if(request()->ajax()) {
$bank_id = request()->input('bank_id');
$role = request()->input('role');
$bank_invites = BankInvite::select('id')->where('bank_id', $bank_id)->get();
$changeUserRole = BankInvitedUser::where('bank_invites_id', $bank_invites)->update(['role' => $role]);
return response()->json(Lang::get('general.bank_deleted'));
}
它没有更新我做错了什么..?是ajax部分
【问题讨论】:
-
你有没有通过控制台调试看看服务器是否抛出错误?
-
在javascript代码中添加一些console.log,看看javascript代码是否被完全执行。使用 try/catch 块将代码包装在您的 php 方法中,以捕获任何错误。尝试在您的方法中将请求作为参数注入。 IE。 changeRoleInBank(Request $request)
-
$bank_invites 是只返回一个值还是一个数组?
-
当您使用
get()时,它必须返回一个数组。$bank_invites = BankInvite::select('id')->where('bank_id', $bank_id)->get(); -
用 first() 替换 get() 试试下面的代码 $bank_invites = BankInvite::select('id')->where('bank_id', $bank_id)->first(); $changeUserRole = BankInvitedUser::where('bank_invites_id', $bank_invites->id)->update(['role' => $role]);
标签: javascript jquery html ajax laravel