CRUD с использованием AJAX & Laravel. После добавления новой записи новый ответ (обновленные данные) не заменяет мое текущее тело моей таблицы без перезагрузки

CRUD с использованием AJAX & Laravel. После добавления новой записи новый ответ (обновленные данные) не заменяет мое текущее тело моей таблицы без перезагрузки

05.12.2019 07:12:12 Просмотров 42 Источник
  1. Данные в таблице поступают из базы данных

Код таблицы HTML:

<table id="mytable" class="table">
     <thead>
          <tr>
              <th>DB-ID</th>
              <th>Name</th>
              <th>Age</th>
              <th>Degree</th>
              <th>Cell</th>
              <th>Edit</th>
              <th>Delete</th>
           </tr>
      </thead>
       <tbody>
            @if ($records->count() > 0)
                @foreach($records as $record)
                      <tr>
                           <td>{{$record->id}}</td>
                           <td>{{$record->name}}</td>
                           <td>{{$record->age}}</td>
                           <td>{{$record->degree}}</td>
                           <td>{{$record->cell}}</td>
                      </tr>
                 @endforeach
            @else
                <span style="color:red">{{ 'Record Not Found' }}</span><br><br>
            @endif
      </tbody>
</table>
  1. По щелчку ajaxполучает данные и сохраняет их в базе данных, но
  2. он не обновляет мое tbodyтело таблицы с новым ответом (обновленные данные из базы данных) без перезагрузки
  3. используя $("tbody").html(responce);он удаляет все записи таблицы
  4. используя $("tbody").append(responce); никаких изменений не происходит
  5. используя $("tbody").html(row);вся предыдущая запись исчезает и отображается только новая строка
  6. используя $("tbody").append(row);он не исчезает предыдущая запись и показать все строки, а также
  7. Я хочу обновить текущую таблицу с новыми данными без перезагрузки

AJAX-код:

            $.ajax({
            type: "GET",
            url: " {{route('record.create')}}",
            data: {name: name, age: age, degree: degree, cell: cell},
            success: function (responce) {
                // location.reload(); 
                    $.each(responce, function( index, value ) {
                    var row = $("<tr><td>" 
                                + value.id + "</td><td>" 
                                + value.name + "</td><td>" 
                                + value.age + "</td><td>" 
                                + value.degree + "</td><td>" 
                                + value.cell + "</td></tr>");

                  // $("tbody").html(responce); //all table record vanished
                  // $("tbody").append(responce); //no change
                  // $("tbody").html(row);  //all previous record vanish and new row shown
                  // $("tbody").append(row); //not vanish previous record and show all rows as well 
                });
            }
        });

сеть.маршрут на PHP:

Route::get('main', 'CrudController@store')->name('record.create');

Контроллер:

public function store(Request $request)
{
    $record = new Record($request->except('_token'));
    $record->save();

    $records = Record::all(); 

    return Response::json($records);

}

Просмотр всех записей маршрута:

Route::get('record', 'CrudController@view')->name('record.view');

контроллер представления :

public function view()
{
    $records = Record::all(); 

    return view('main', compact('records'));
}
У вопроса есть решение - Посмотреть?

Ответы - CRUD с использованием AJAX &amp; Laravel. После добавления новой записи новый ответ (обновленные данные) не заменяет мое текущее тело моей таблицы без перезагрузки / CRUD using AJAX & Laravel. After adding a new record, new response (updated data) is not replacing my current tbody of my table WITHOUT RELOADING

Является ответом!
Saengdaet

05.12.2019 07:24:32

Я думаю, что вы должны сначала исчезнуть из своей таблицы, прежде чем вводить новые данные из ответа.

$.ajax({
        type: "GET",
        url: " {{route('record.create')}}",
        data: {name: name, age: age, degree: degree, cell: cell},
        success: function (responce) {
             $('#formdata')[0].reset();
             $("tbody").html("");
             $.each(responce, function( index, value ) {
                var row = $("<tr><td>" 
                            + value.id + "</td><td>" 
                            + value.name + "</td><td>" 
                            + value.age + "</td><td>" 
                            + value.degree + "</td><td>" 
                            + value.cell + "</td></tr>");

                $("tbody").append(row);
            });
        }
    });
https://stackoverflow.com/questions/59188151/crud-using-ajax-laravel-after-adding-a-new-record-new-response-updated-data/59188255#comment104596252_59188255
Ух ты, здорово. это работает . но поля ввода моей формы не обновляются, и она содержит старые значения в полях. как очистить мои поля ввода без перезагрузки
https://stackoverflow.com/questions/59188151/crud-using-ajax-laravel-after-adding-a-new-record-new-response-updated-data/59188255#comment104596275_59188255
просто установите его в пустую строку, когда успех @Имран..
https://stackoverflow.com/questions/59188151/crud-using-ajax-laravel-after-adding-a-new-record-new-response-updated-data/59188255#comment104596314_59188255
Я обновил свой ответ, вы можете проверить, как я сбросил форму
https://stackoverflow.com/questions/59188151/crud-using-ajax-laravel-after-adding-a-new-record-new-response-updated-data/59188255#comment104596386_59188255
О, это не работает: Uncaught TypeError: не удается прочитать свойство "сброс" неопределенного @saengdaet
https://stackoverflow.com/questions/59188151/crud-using-ajax-laravel-after-adding-a-new-record-new-response-updated-data/59188255#comment104596408_59188255
что такое idформы?
https://stackoverflow.com/questions/59188151/crud-using-ajax-laravel-after-adding-a-new-record-new-response-updated-data/59188255#comment104596462_59188255
<form id= "formdata" method="">
Закрыть X