Как удалить по идентификатору с помощью jquery / javascript, Spring? - PullRequest
0 голосов
/ 09 июля 2019

Я хотел удалить строку по ее идентификатору.Я уже сделал "вещи" в Service, Controller, Listfiles и в файле Delete.

Это контроллер

  @RequestMapping("/hapussertifikasi")
    public String hapussertifikasi() {
        return ("sertifikasi/hapussertifikasi");
    }

    @ResponseBody
    @RequestMapping(value = "/hapussertifikasi/{angka}", method = RequestMethod.DELETE)
    public Map<String, String> hapussertifikasi(@PathVariable("angka") Long angka, Model model) {
        sertifikasisr.hapus(angka);
        // key value
        Map<String, String> map = new HashMap<>();
        // pakai String string karena value key dan value nya string
        System.out.println();
        System.out.println(angka);
        map.put("status", "berhasil");
        // DARI BARANG SERVICE
        /*
         * if(brngsr.hapus(angka)) { // key value map.put("status", "berhasil"); }else {
         * map.put("status", "gagal"); }
         */

        return map;
    }

Это файл Service

 public boolean hapus(Long id) {
        try {
            sertifikasi.deleteById(id);
            return true;
        }catch(Exception e) {
            return false;
        }
    }

Это файл списка

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

    <!-- Nulis table didalam body -->
    <div class="table-responsive">
        <table class="table">
            <thead>
                <tr>
                <td>ID</td>
                    <td>Nama Sertifikasi</td>
                    <td>Penerbit</td>
                    <td>Masa Berlaku</td>
                    <td>#</td>
                </tr>
            </thead>
            <tbody id="idTbodySertifikasi">
                <tr th:each="item :${keysertifikasi}">
                <td th:text="${item.id}">ID</td>
                    <td th:text="${item.certificate_name}">NamaBarang</td>
                    <td th:text="${item.publisher}">JenisBarang</td>
                    <td th:text="${item.until_year + '-' + item.until_month }">Sampai</td>
                    <td>
                        <div class="dropdown">
                            <button class="btn btn-primary dropdown-toggle" type="button"
                                data-toggle="dropdown">
                                More <span class="caret"></span>
                            </button>
                            <ul class="dropdown-menu">
                                <li class="clDropdown" data-value="0"><a href="#">Ubah</a></li>
                                <li class="clDropdown" data-value="1"><a href="#">Hapus</a></li>
                            </ul>
                        </div>
                    </td>
                </tr>
            </tbody>
        </table>
    </div>
    <script type="text/javascript">
        $('.table-responsive').on('show.bs.dropdown', function() {
            $('.table-responsive').css("overflow", "inherit");
        });

        $('.table-responsive').on('hide.bs.dropdown', function() {
            $('.table-responsive').css("overflow", "auto");
        });

        $(".clDropdown").click(function() {
            debugger;
            var x = $(this).data('value');
            var angka = $(this).attr('data-idbarang');
            if (x == 0) {
                $.ajax({
                    url : './ubahsertifikasi',
                    method : 'Get',
                    success : function(model) {
                        debugger;
                        /* jahit model return dari controller ke body modal */
                        $('#idMdlBodyUbahSertifikasi').html(model);
                        /* pop up modalnya */
                        $('#idMdlUbahSertifikasi').modal('show');
                    },
                    error : function(model) {
                        debugger;
                    }
                });
            } else if (x == 1) {
                debugger;
                $.ajax({
                    url : './hapussertifikasi',
                    method : 'Get',
                    success : function(model) {
                        debugger;
                        /* jahit model return dari controller ke body modal */
                        $('#idMdlBodyHapusSertifikasi').html(model);
                        /* pop up modalnya */
                        $('#idMdlHapusSertifikasi').modal('show');
                    },
                    error : function(model) {
                        debugger;
                    }
                });
            }
        });
    </script>
</body>
</html>

И, наконец, это файл удаления, в который помещена кнопка удаления

 <!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    <div class="col-xs-12">
        <div class="row">
            <div class="col-xs-2">
                <i class="glyphicon glyphicon-trash center" style="font-size: 50px"></i>
            </div>
            <div class="col-xs-8">
                <div class="clTulisanHapus center" id="idTulisanHapus">Anda
                    Yakin ingin menghapus Pelatihan?</div>
            </div>
        </div>
    </div>
    <div class="col-md-offset-8">
        <div class="btn-group">
            <button type="button" id="idBtnHapusBatal" class="btn clBtnMdlHapus">Tidak</button>
            <button type="button" id="idBtnHapusHapus" class="btn clBtnMdlHapus">Ya</button>
        </div>
    </div>

    <script>
        $('#idBtnHapusHapus').click(function() {
            var angka = $(this).attr('data-id');
            debugger;
            debugger;
            $.ajax({
                url : '/hapussertifikasi/' + angka,
                type : 'DELETE',

                success : function(model) {
                    debugger;
                    window.location = './sertifikasi'

                },
                error : function(model) {
                    debugger;
                }
            });
        });
    </script>
</body>
</html>

Идентификатор показывает нормально, но значения идентификатора нетне отправляю в файл контроллера.

Ответы [ 2 ]

0 голосов
/ 09 июля 2019

Кнопка <button type="button" id="idBtnHapusHapus" class="btn clBtnMdlHapus">Ya</button> не имеет атрибута data-id, поэтому при вызове var angka = $(this).attr('data-id');, angka равен Nil.

Это означает, что вы делаете запрос на удаление для /hapussertifikasi/, который выполняетсявернуть ошибку 400, потому что вы не передаете требуемый аргумент (правильный синтаксис будет /hapussertifikasi/14, где 14 - идентификатор, который вы хотите удалить.)

0 голосов
/ 09 июля 2019

привет, братан, я тоже столкнулся с такой проблемой .....

после многолетних НИОКР я нашел решение, но не знаю, почему оно работает ..

попробуй это

url : 'hapussertifikasi/' + angka,

просто сначала удалите / пой

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