Laravel ajax запрос получить идентификатор из таблицы и передать его кнопке редактирования - PullRequest
0 голосов
/ 02 марта 2020

привет, я пытаюсь сделать ajax crud, не используя только пакет Jquery как библиотеку, я могу загрузить данные в таблицу без проблем, единственная проблема, которая у меня возникает, - когда я хочу редактировать данные, я пытаюсь передать идентификатор кнопке редактирования, но проблема в том, что работает только одна кнопка, я могу получить только один идентификатор, а когда я нажимаю на остальные, он не работает.

Ajax код

 $(document).ready(function(){
       $('#my').on('click',function(){
        $.ajax({
            url: "{{ URL::route('sample') }}",
            type:'get',
            dataType:'json',
            contentType:'application/json',
            success:function (data){
                console.log(data);
                $('#data').html("");
                $.each(data, function (key, val){
                    $('#data').append("<tr>"+
                        "<td>"+val.id+"</td>"+
                        "<td>"+val.name+"</td>"+
                        "<td>"+val.code+"</td>"+
                        "<td>"+val.user.name+"</td>"+
                        "<td>"+
                            "<button class='btn btn-warning' id='edit' data-id="+val.id+" value="+val.id+">Edit</button>"+
                            "<button class='btn btn-danger' id='delete' data-id="+"ssasaa"+">Delete</button>"
                        +"</td>"+
                    +"</tr>")

                    $('#edit').click(function(event){
                        id=$(this).val();
                        console.log(id);
                    })
                    $('#delete').click(function(){
                        console.log('button delete click');
                    })

                })

            },

            error:function(err){
                    console.log('Error loading data')
                 }

        });/*==End of Ajax==*/


    });
            });

Консольный результат enter image description here

1 Ответ

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

Это происходит потому, что обработчик кликов jquery нацелен на идентификатор:

 $('#my').on('click'...

В HTML идентификаторы должны быть уникальными. Только один элемент может иметь идентификатор «my»

. Измените id="my" на всех ваших html кнопках на класс, подобный class='my', затем измените jquery на:

 $('.my').on('click'...

Если заглянуть глубже

, вам, скорее всего, нужно также преобразовать $('#edit') и $('#delete') в классы, но трудно понять наверняка, не увидев html

Также

Я вижу, вы сказали, что делаете это без пакетов, и просто jquery, в котором говорится, что я рекомендую посмотреть Рюкзак для laravel, который сделает этот супер легко построить после установки вверх :)

...