skip to Main Content

Hi im doing an App with Datatables and i have a problem when i want to try to edit a record in the datatables this is my js function in app.blade.php

$(document).on('click', '.editButton', function(e) {
                e.preventDefault();
                var id = $(this).data("id");
                var editRoute = "{{ url('admin/user/' . auth()->user()->id . '/messages') }}";
                console.log(id);
                token();
                $.ajax({
                    /* url: "{{ route('admin.messages.edit', ['user' => auth()->user()->id, 'message' => ':id']) }}".replace(':id', id), */
                    url: editRoute + "/" + id,
                    type: "GET",
                    /* dataType: 'json', */

                    success: function(result) {
                            console.log(result)
                            var message = result.data;
                            console.log(message);
                            $('.id').val(message.id);
                            $('.text').val(message.text);
                            $('.url').val(message.url);
                            $('.note').val(message.note);
                            $('.tipes').val(message.tipes);
                            $('.start_time').val(message.start_time);
                            $('.end_time').val(message.end_time);
                            $('.active').val(message.active);
                            $('#modalEdit').modal('show');
                            $('.modal-title').text('Update Message');

                    },
                    error: function(xhr, status, error) {
                        console.log(xhr.responseText);
                    }
                });
            });

the console.log(result) is empty and console.log(message) is undefined

this is the edit function in the controller

public function edit(Request $request)
    {
        $result = Message::where('id', $request->id)->first();


        if ($result) {
            return response()->json([
                'message' => "Data Found",
                "code"    => 200,
                "data"    => $result
            ]);
        } else {
            return response()->json([
                'message' => "Internal Server Error",
                "code"    => 500
            ]);
        }
    }

i want to edit the message with a modal, but the js fuction doesnt work properly, the var message is undefined

this is my route file

Route::middleware('auth')
    ->namespace('Admin')
    ->name('admin.') 
    ->prefix('admin') 
    ->group(function () {
        Route::get('/', 'HomeController@index')->name('home');
        Route::resource('/user', 'UserController');/* ->except(['edit', 'update']); */
        Route::resource('/user/{user:id}/messages', 'MessagesController');
        /* Route::resource('user.messages', MessagesController::class); */
    });

    Route::get('messages', 'AdminMessagesController@getMessages')->name('get.messages');

    Auth::routes();

this is my table structure
enter image description here

and its my form for edit the message

<div id="modalEdit" class="modal fade" role="dialog">
            <div class="modal-dialog">
                <!-- Modal content-->
                <div class="modal-content">
                    <div class="modal-header">
                        <h4 class="modal-title">Modal Header</h4>
                        <button type="button" class="close" data-dismiss="modal">&times;</button>
                    </div>
                    <form id="update">
                        <div class="modal-body">
                            <div class="form-group">
                                <label for="text">Testo</label>
                                <input type="text-area" class="form-control text" id="text" name="text">
                            </div>
                            <div class="form-group">
                                <label for="url">URL</label>
                                <input type="text" class="form-control" id="url" name="url">
                            </div>
                            <div class="form-group">
                                <label for="note">Note</label>
                                <input type="text" class="form-control" id="note" name="note">
                            </div>
                            <div class="form-group">
                                {{-- <label for="tipes">Tipo</label>
                                <input type="text" class="form-control" id="tipes" name="tipes"> --}}
                                <label for="tipes">Tipo</label>
                                <select name="tipes" id="tipes">
                                    <option value="A">A</option>
                                    <option value="B">B</option>
                                </select>
                            </div>
                            <div class="form-group">
                                <label for="start_time">Inizio</label>
                                <input type="date" class="form-control" id="start_time" name="start_time">
                            </div>
                            <div class="form-group">
                                <label for="end_time">Fine</label>
                                <input type="date" class="form-control" id="end_time" name="end_time">
                            </div>
                            <div class="form-group">
                                <label for="active">Attivo</label>
                                {{-- <input type="text" class="form-control" id="active" name="active"> --}}
                                <label for="active">Attivo</label>
                                <select name="active" id="active">
                                    <option value="1">Si</option>
                                    <option value="0">No</option>
                                </select>
                            </div>
                        </div>
                        <div class="modal-footer">
                            <button type="submit" class="btn btn-primary">Update</button>
                            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                        </div>
                    </form>
                </div>
            </div>
        </div>

2

Answers


  1. public function edit(Request $request,$id)
    {
        $result = Message::where('id', $id)->get();
    
    
        if ($result) {
            return response()->json([
                'message' => "Data Found",
                "code"    => 200,
                "data"    => $result
            ]);
        } else {
            return response()->json([
                'message' => "Internal Server Error",
                "code"    => 500
            ]);
        }
    }
    
    you need to pass $id parameter into function edit! try it! may be it works
    
    Login or Signup to reply.
  2.     $(document).ready(function() {
      $('.editbutten').on('click', function(e) {
        e.preventDefault();
        var id = $(this).data("id");
        var editRoute = "{{ url('admin/user/' . auth()->user()->id . '/messages') }}";
        console.log(id);
        token();
        $.ajax({
          /* url: "{{ route('admin.messages.edit', ['user' => auth()->user()->id, 'message' => ':id']) }}".replace(':id', id), */
          url: editRoute + "/" + id,
          type: "GET",
          /* dataType: 'json', */
    
          success: function(result) {
            console.log(result)
            var message = result.data;
            console.log(message);
            $('.id').val(message.id);
            $('.text').val(message.text);
            $('.url').val(message.url);
            $('.note').val(message.note);
            $('.tipes').val(message.tipes);
            $('.start_time').val(message.start_time);
            $('.end_time').val(message.end_time);
            $('.active').val(message.active);
            $('#modalEdit').modal('show');
            $('.modal-title').text('Update Message');
    
          },
          error: function(xhr, status, error) {
            console.log(xhr.responseText);
          }
        });
      });
    });
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search