【发布时间】:2015-07-04 20:43:18
【问题描述】:
我正在尝试从我的表中删除与特定 ID 对应的条目列表。我得到 id 并通过 ajax 函数将其发布到控制器,并使用模型的 Delete 函数删除特定条目。但条目并没有被删除。
这是我在名为reports.ctp 的视图文件中的ajax 函数,在单击链接时我调用控制器函数。
$(".delete_entries").click(function() {
$.ajax({
type: "POST",
url: "http://localhost/FormBuilder/reports/deleteEntries",
data: "formid="+formid,
async: false,
success: function(msg){
alert( "Data Saved: " + msg);
}
});//ajax
});
这是reports_controller.php 中的删除操作
function deleteEntries()
{
$this->data['Result']['form_id']=$this->params['form']['formid'];
$this->Report->Result->delete($this->data['Result']['form_id']);
}
我要从中删除条目的表是“结果”。有人帮助我如何删除条目。
编辑
现在我正在使用删除 sql 查询来删除结果表中的条目。
$this->Result->query("delete from results where form_id=".$this->data['Result']['form_id']);
不知道为什么 CakePHP 的删除命令不起作用。
但现在的问题是,只有当我刷新页面时,才会反映条目的删除。如果我不刷新,条目仍会显示在表中。 或许如果 CakePHP 的删除功能起作用,页面就会刷新。
解决方案
deleteAll 方法有效,因为我没有像 deceze 指出的那样将主 ID 作为 delete 方法的输入。
$this->Result->deleteAll(array('Result.form_id' => $this->data['Result']['form_id']));
关于反映条目删除的问题,我按照 Xr 的建议做了一个 $(".entries).remove() on success,因此条目表被删除而无需刷新页面。
【问题讨论】: