ajax - 当单击按钮删除但数据无法删除且 url 未显示 id 时我遇到问题
问题描述
我试图解决这个问题几个小时,但我从来没有解决这个问题
我的代码有问题,当我单击 json 中的删除按钮时,我无法从控制台获取 ID 只是链接,如下所示:
例子 :
- 那事发生了 :
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;
}
然后查看(我只是放了模态脚本和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 调用。如果您有多个表单,则代码更具可读性。
推荐阅读
- python - 在 Python 中写入文件时,如何确保数据保存在一行中?
- python - “如果”语句不适用于 np.abs(np.max(f_5.all()))
- javascript - 导航栏问题的下拉菜单
- python - Python 中的未定义行为
- c# - 为什么要在库代码中避免使用 Console.WriteLine?
- django - Django表单不保存
- ios - 如何在 iOS 中将浏览器中的 url 共享到我的应用程序?
- sql - 无法根据 SQL Server 中另一列的条件从列中检索不同的行
- javascript - 我可以在等待异步函数时设置变量值吗?
- c++ - 使用 google protobuf 错误执行二进制文件