Как обновить вторую строку в моей базе данных, используя опцию выбора данных «при изменении» - PullRequest
1 голос
/ 11 ноября 2019

Я пытаюсь изменить статус заказа, используя опцию выбора. Первый ряд данных работает нормально. Но при изменении статуса второго заказа он не работает.

Выберите код опции:

 <select name="status" id="status">status
      <option value="Order Placed">{{$assign->status}}</option>
      <option value="On Way">On Way...</option>
      <option value="Delivered">Delivered...</option>
      <option value="Cancelled">Cancelled...</option>
      <input type="hidden" id="order_id" value="{{ $assign->order->id }}" name="order_id">
</select>

Код jQuery:

$(document).ready(function () {
        $('#table_id').on('change' ,'select', function() {
        var status = $('#status').val();
        var order_id = $('#order_id').val();
        alert(status);

        $.ajax({
          type: "get",
          url: "{{ url ('/admin/abc')}}",
          data: {status: status, order_id: order_id},
          dataType: "JSON",
          success: function (response) {
            $('.alert').show();
            $('.alert').html(result.success);
          }
        });
    });

  });

Route.php:

Route::get('/admin/abc','AdminController@abc')->name('assign.abc');

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

public function abc(Request $req){
    DB::table('assigns')->WHERE('id',$req->order_id)->update(['status' => $req->status]);
}
}

Ответы [ 3 ]

1 голос
/ 11 ноября 2019

Изменить файл маршрута

Route::post('/admin/abc','AdminController@abc')->name('assign.abc');

Изменить код jQuery.

$(document).ready(function () {
        $('body').on('click','#table_id',function(){
        var status = $('#status').val();
        var order_id = $('#order_id').val();
        $.ajax({
          type: "POST",
          url: '{{ route("assign.abc") }}',
          headers: {
                    'X-CSRF-TOKEN': '{{ csrf_token() }}'
                },
          data: {status: status, order_id: order_id},
          dataType: "JSON",
          success: function (response) {
            $('.alert').show();
            $('.alert').html(result.success);
          }
        });
    });

  });
0 голосов
/ 11 ноября 2019
public function abc(Request $req, Assign $assign){
 $data = Assign::find($req->order_id);
        $data->status = $req->status;
        $data->save();
         return response()->json(['success'=>'Saved successfully.']);

}

Try This On your Controller

in Route 
Route::get('/admin/abc','AdminController@abc')->name('assign');

in js

$(document).ready(function () {
        $('#table_id').on('change' ,'select', function() {
        var status = $('#status').val();
        var order_id = $('#order_id').val();
        alert(status);

        $.ajax({
          type: "get",
          url: 'assign',
          data: {status: status, order_id: order_id},
          dataType: "JSON",
          success: function (response) {
            $('.alert').show();
            $('.alert').html(result.success);
          }
        });
    });

  });
0 голосов
/ 11 ноября 2019

Вы должны получить выбранное значение выбранного входа

, используя

$('option:selected',this).val()

$(document).ready(function () {
        $('#table_id').on('change' ,'select', function() {
        var status = $('option:selected',this).val();
        ...
...