我正在寻找如何完成下一个任务。我有一个控制器,它加载一个视图,其中一个表列出了我的数据库中的页面。在表格中的每一行中都有一个图标的位置,单击该图标将执行以下两项操作之一。
如果用户没有启用 javascript:
- 单击该图标将重定向到控制器中的删除功能,其中页面的 id 作为参数
- 删除控制器函数将在模型发送页面 id 中运行删除函数以删除模型函数
- 模型中的删除函数将从数据库中删除页面,当返回到页面控制器删除函数时,它将重定向回索引函数以再次显示页面表列表。
- 重定向后,它将显示有关成功/失败的标题和消息。
如果用户确实启用了 javascript:
- 使用带有数据页面 id 的 jquery post 方法向控制器中的删除函数发送帖子
- 删除控制器函数将在模型发送页面 id 中运行删除函数以删除模型函数
- 模型中的删除函数将从数据库中删除页面,当返回到页面控制器删除函数时,它会为 json 对象创建一个消息数组以返回到 post 请求的成功函数。
- 带有我的 pnotify 插件的消息将创建一条由该 json 对象形成的消息并将其显示给用户
我想知道的是如何正确适应这两种情况?我已经开始尝试这个,但如果到目前为止我犯了错误,我想澄清一下。
<?php
// Controller delete function
public function delete($content_page_id)
{
if (isset($content_page_id) && is_numeric($content_page_id))
{
$content_page_data = $this->content_page->get($content_page_id);
if (!empty($content_page_data))
{
//update is ran instead of delete to accompodate
//for the soft delete functionality
$this->content_page->update('status_id', 3);
if ($this->input->is_ajax_request())
{
//return json data array
}
}
}
}
?>
用于带有删除按钮的多个表的全局 JS 文件
/* Delete Item */
$('.delete').click(function(event) {
event.preventDefault();
var item_id = $(this).attr('rel');
$.post(<?php echo current_url(); ?>'delete', { item_id : item_id }, function(data)
{
if (data.success)
{
var anSelected = fnGetSelected( oTable );
oTable.fnDeleteRow( anSelected[0] );
}
}, 'json');
});