обновление / изменение значения с помощью кнопки в Laravel - PullRequest
1 голос
/ 26 марта 2020

Я пытался обновить / изменить currentStatus строки с 0 на 1 с помощью кнопки Approve в таблице данных, но я понятия не имею, как это сделать. Может кто-нибудь помочь мне?

enter image description here

Так я храню

    public function store(Request $request){
        $currentStatus = 0;

        $data = $request->validate([
            'to' => 'required',
            'date' => 'date',
            'address' => 'required',
            'reference' => 'required',
            'attention' => 'required',
            'area' => 'required',
            'project' => 'required',
            'salesman' => 'required',
            'location' => 'required'


        ]);
        \App\Contract::create($data + ['status' => $currentStatus]);
        return redirect('contracts/pendings');
    }

Так я отображаю в таблицах данных

                <table id="example1" class="table table-bordered table-striped">
                    <thead>
                        <tr>
                            <th>Customers Name</th>
                            <th>Date Created</th>
                            <th>Project Name</th>
                            <th>Actions</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            @forelse($pendingContracts as $pendingContract)
                            <td>{{$pendingContract->to}}</td>
                            <td>{{$pendingContract->date}}</td>
                            <td>{{$pendingContract->project}}</td>
                            <td>
                                <button type="button" class="btn btn-info"> 
                                    <a href="/contracts/pendings/{{$pendingContract->id}}" style="color: #ffffff;">View Details</a> 
                                </button>
                                <button type="button" class="btn btn-success"> 
                                    <a href="" style="color: #ffffff;">Approve</a> 
                                </button>

                            </td>

                        </tr>
                        @empty
                        <center><p>no data</p></center>
                        @endforelse
                    </tbody>
                </table>

1 Ответ

2 голосов
/ 26 марта 2020

Я поделился примером кода. Пожалуйста, отметьте

Просмотр файла - Кнопка

<input data-id="{{$contract->id}}" class="toggle-class" type="checkbox" data-onstyle="success" data-offstyle="danger" data-toggle="toggle" data-on="Approve" data-off="Disapprove" {{ $contract->is_approve ? 'checked' : '' }}>

Введите следующий JS код в файле просмотра

<script>
$(document).off('change', '.toggle-class').on('change', '.toggle-class', function() {
    var url = 'contract/changestatus';
    var is_approve = $(this).prop('checked') == true ? 1 : 0;
    var contract_id = $(this).data('id');
    $.ajax({
            url: url,
            type: 'POST',
            dataType: 'json',
            data: {"_token": "{{ csrf_token() }}", 'is_approve': is_approve, 'contract_id': contract_id},
                success: function(data){
                console.log(data.success)
                }
        });
        return false;
    });
</script>

Код контроллера

public function changestatus(Request $request)
{
   $contract = Contract::find($request->contract_id);
   $contract->is_approve = $request->is_approve;
   $contract->save();
   return redirect()->route('admin.contract.index');
}

Надеюсь, этот фрагмент полезен для вас. Спасибо:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...