【问题标题】:Ajax update with laravel使用 laravel 进行 Ajax 更新
【发布时间】: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')-&gt;where('bank_id', $bank_id)-&gt;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


【解决方案1】:

请检查此可编辑代码:

这里有我的控制器:

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)->first();
          $changeUserRole = BankInvitedUser::where('bank_invites_id', $bank_invites->id)->update(['role' => $role]);
            return response()->json(Lang::get('general.bank_deleted'));

      }

我刚刚改了:$bank_invites 到 $bank_invites->id

$changeUserRole = BankInvitedUser::where('bank_invites_id', $bank_invites->id)->update(['role' => $role]);

【讨论】:

    猜你喜欢
    • 2016-03-02
    • 2018-12-29
    • 2013-03-12
    • 1970-01-01
    • 2020-01-29
    • 1970-01-01
    • 2011-05-16
    • 2016-10-15
    • 2015-01-01
    相关资源
    最近更新 更多