单击删除按钮但数据无法删除且 url 不显示 ID 时出现问题

I have a probllem when the button delete has clicked but the data cannot delete and the url not show the id

我已经尝试解决这个问题好几个小时了,但我从来没有解决过这个问题

我的代码有问题,当我从 json 中单击删除按钮时,我无法从控制台中仅 link 获取 ID,如下所示:

示例:

我粘贴一些代码来检查:

控制器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;
}

然后查看(我只放了模态脚本和 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;
    })

ajax 请求可能无法正常工作的原因有很多。我想到的第一件事是,您没有指定输入表单的 ID 和方法。请确保您的 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
}

请注意,我更改了函数名称。这可能会误导其他程序员,因为 delete 在许多编程语言中用作动态对象的析构函数!

此外,我建议创建一个 ajax.php 文件来解析不同类型的 ajax 请求。该文件也可以用作控制器,但仅用于 ajax 调用。如果您有多个表单,则代码更具可读性。