Laravel:如何在单击按钮时更改特定字段的值?

时间:2019-01-28 12:41:38

标签: ajax laravel-5 button eloquent

我想使用ajax来执行此操作,但是我尝试了所有看到的引用,但似乎仍然无法正常工作。我是使用laravel的初学者,请帮助我。

这是我在控制器中的方法

    public function delete(Request $request, $id)
    {
      $validator = Validator::make(Input::all(), $this->rules);
       if ($validator->fails()) {
         $errorMessage = Config::get('const.error.common.missing_required.desc');
         $errorContainerHtml = parent::renderErrorContainerView($errorMessage);
         $response = response()->json(compact('errorContainerHtml'), 400);
       } else {
         try {
            $codes = Model::select ('id', 'status'))
                ->whereId($id)
                ->first();

            if ($codes ->status == 1){
               $codes ->status = 0;
            }else{
               $codes ->status = 1;
            }
            $codes ->save();
            $response = response()->json($codes );
          } catch (\Exception $e) {
            $errorMessage = Config::get('const.error.common.system_error.desc');
            Log::error($e);
            $errorContainerHtml = parent::renderErrorContainerView($errorMessage);
            $response = response()->json(['error' => compact('errorContainerHtml')], 500);
         }    
        }
      return $response;
}

这是我的ajax

$('.modal-footer').on('click', '#delete', function() {
        loader.show();
        $.ajax({
            type: 'POST',
            url: '/master/rgbCodes/changeStatus',
            data: "status=" + status,
            success: function(data) {
                 if(data == 1){
                     $(data.status == 0);
                     showAlertSuccess('<b>Successfully added RGB Code information.</b>');
                    window.location.reload();
                } else {
                    $(data.status == 1);
                }
            },
            error: data => {
                showAlertDanger(data.responseJSON.error.errorMessage);
                loader.hide();
            },
            complete: () => {
                loader.hide();
            }
        });
    });

这是我的模态和路线

<div id="deleteModal" class="modal fade" role="dialog">
            <div class="modal-dialog modal-dialog-centered" role="document">
                <div class="modal-content">
                    <div class="modal-body">
                        <p class="font-weight-bold">Are you sure you want to deactivate this data?</p>
                       <input type="hidden" name="status" id="status">
                    </div>
                    <div class="modal-footer smarts-modal-footer">
                        <button type="submit" class="btn btn-light" data-dismiss="modal" id="delete">Yes</button>
                        <button type="button" class="btn btn-light" data-dismiss="modal">No</button>
                    </div>
                </div>
            </div>
        </div>

Route::post('/master/rgbCodes/status/{status}', 'RgbCodeController@changeStatus')->name('master.rgbCodes.changeStatus');

我打算做的是,当用户单击废纸button按钮时,如果他们确定要停用此用户,将出现确认模式。如果他们单击“是”,则表中他们单击“废纸icon”图标的特定行中的状态将为“不活动”。但我无法做到这一点,我花了2天的时间来解决此问题,并继续重复在线上看到的所有方法。

请不要忽略这一点。谢谢!

1 个答案:

答案 0 :(得分:0)

将其放入您的确认模式

<script>
    function Confirm(my_function) {
        $('#confirm-modal').modal('toggle');
        $('#my-confirm-button').on('click', function () {
            my_function();
            $('#confirm-modal').modal('toggle');
        })
    };
</script>

然后将其添加到您的垃圾箱按钮事件

    $('#my-button').on('click', function () {
        Confirm(function () {
            //Do your thing, change the table properties here
        });
    });