Запрос на обновление Laravel Ajax дублирует данные - PullRequest
0 голосов
/ 28 сентября 2019

Я пытаюсь обновить данные с помощью ajax, но мои данные дублируются из-за URL-адреса ajax, я не уверен, правильно ли я передаю /

Код Ajax:

jQuery(document).ready(function($)  {
$('#update-form').on('submit', function (e) {
        e.preventDefault();
        $.ajax({
            type: "POST",      

 url: "teachers/" + $('#update-id').attr("value"), //error is here

            dataType: 'json',
            headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
            data : $(this).serialize(),

            success: function (data) {

                alert("updated");
            },
        });
    });
});

просмотр кода:

у меня есть таблица со списком учителей и кнопка редактирования для каждого учителя;

<button type="button" id="btn" value="{{ $teacher->id }}" class="btn btn-primary btn-block btn-sm edit-btn">Edit</button>

в форме iскрытое поле

<form method="post" id="update-form">
        {{ method_field('PATCH') }}
        <input type="hidden" id="update-id" value="{{$teacher->id}}" >

            <div class="">
                <label for="efirst">efirst</label>
                <input type="text" class="form-control" name="efirst" id="update-efirst">
                <textarea name="esecond" class="form-control" id="update-esecond" rows="6"></textarea>
            </div>

                <button type="submit" class="btn btn-success"  id="update-submit">Update</button>
        </form>

когда я нажимаю на обновление, идентификаторы учителя меняются, один идентификатор учителя становится другим идентификатором учителя.это правильный способ передать идентификатор учителя из скрытого поля?

Ответы [ 2 ]

0 голосов
/ 28 сентября 2019

ваша папка маршрута web.php

Route::post('/teacher/{id}', 'PagesController@updatemethod name');  

ваш код AJAX

 jQuery(document).ready(function($)  {
    $('#update-form').on('submit', function (e) {
            e.preventDefault();
            var id = $('#update-id').val();
            $.ajax({
                type: "POST",      
                url : '{{ url("teachers/") }}/' + id,
                dataType: 'json',
                headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
                data : $(this).serialize(),

                success: function (data) {

                    alert("updated");
                },
            });
        });
    });
0 голосов
/ 28 сентября 2019

Напишите название маршрута, как показано ниже

В Web.php

Route::post("teacher/{id}/edit","YourController")->name("teacher.update");

В файле Blade

$('#update-form').on('submit', function (e) {
    e.preventDefault();
    var id = $('#update-id').val(); // $('#update-id').attr("value") also ok
    $.ajax({
        method: "post",  
        url: "{{ route('teacher.update',id) }}",
        dataType: 'json',
        headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
        data : $(this).serialize(),
        success: function (data) {
            alert("updated");
        },
    });
});

Попробуйте это.Это будет работа

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