У меня есть проблема, когда кнопка «Удалить» нажата, но данные не могут быть удалены, а в URL не отображается идентификатор - PullRequest
0 голосов
/ 25 октября 2019

Я пытался решить эту проблему несколько часов, но я никогда не решал эту проблему

У меня проблема с кодом, когда я нажимаю кнопку удаления из json, я не могу получить идентификатор, просто ссылкаиз консоли вот так:

пример:

  • что случилось: request
  • хочу вот так: request/?id=1

Я вставляю некоторый код для проверки:

Контроллер request.php:

public function delete()
{
    // $this->m_request->delete($this->input->post('id_form'));
    $id = $this->input->post('id_form');
    $data = $this->m_request->DeleteRequest($id);
    echo json_encode($data);
}

Модель m_request.php:

public function DeleteRequest($id)
{
    $hasil = $this->db->query("DELETE FROM request WHERE id_form='$id'");
    return $hasil;
}

И затем View (я просто поставилмодальный скрипт и ajax json скрипт):

Модальный вид:

<div class="modal fade" id="ModalHapus" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
    <div class="modal-content">
        <div class="modal-header">
            <h4 class="modal-title" id="myModalLabel">Hapus Request</h4>
            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">X</span></button>
        </div>
        <form class="form-horizontal">
            <div class="modal-body">

                <input type="hidden" name="kode" id="textkode" value="">
                <div class="alert alert-warning">
                    <p>Apakah Anda yakin mau menghapus request ini?</p>
                </div>

            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Tutup</button>
                <button class="btn_hapus btn btn-danger" id="btn_hapus">Hapus</button>
            </div>
        </form>
    </div>
</div>

Ajax / JSON Скрипт:

 //GET HAPUS
    $(document).on('click', '.hapus', function() {
        var id = $(this).attr('data');
        $('#ModalHapus').modal('show');
        $('[name="kode"]').val(id);
    })

    // Hapus Request
    $('#btn_hapus').on('click',function(e){
        e.preventDefault();
        var id = $('textkode').val();
        $.ajax({
            type: "POST",
            url: "<?= site_url('request/delete')?>",
            dataType: "JSON",
            data: {id:id},
            success: function(data){
                // $('#ModalHapus').modal('hide');
                console.log(data)
                load_data();
            }
        });
        return false;
    })

1 Ответ

0 голосов
/ 25 октября 2019

Существует множество причин, по которым, возможно, не работает ajax-запрос. Первое, что мне пришло в голову, это то, что вы не указали идентификатор и метод ввода формы. Убедитесь, что у вас есть оба в вашем HTML-теге. Например:

<form id=“id_form” method=“post” class=“...”>
...
    <input type="text" name="kode" id="textkode">
</form>

В вашем JS-коде выполните следующие действия:

$.ajax({
        type: "POST",
        url: "<?= site_url('request/delete')?>",
        dataType: "JSON",
        data: $(“#id_form”).serialize(),
        success: function(data){
            console.log(data)
            load_data();
        }
        error: function(xhr, desc, err) {
            console.log(xhr);
            console.log("Details: " + desc + "\nERROR: "+ err);
        }
});

Также измените функцию удаления на:

public function deleteTableRow()
{
    $id = $_POST['textkode'];  // Because I'm not sure what this->input->post() makes
    $result = $this->m_request->DeleteRequest($id);
    echo json_encode(array('id' => $id, 'result' => $result)); // The contents of array should then be displayed in the console of your webbrowser
}

Обратите внимание, что я изменилимя функции. Это может ввести в заблуждение других программистов, поскольку удаление используется во многих языках программирования в качестве деструктора для динамических объектов!

Кроме того, я бы порекомендовал создать файл ajax.php для разбора различных типов запросов ajax. Этот файл также будет работать как контроллер, но только для вызовов ajax. Если у вас несколько форм, код будет более читабельным.

...