【问题标题】:Delete confirmation message in php codeigniter在 php codeigniter 中删除确认消息
【发布时间】:2020-08-19 08:36:01
【问题描述】:

我正在尝试在删除数据之前获得确认消息,并且我想在删除数据的同时将数据保留在数据库中。 这是我的(项目)index.php 视图

 <div class="main-sec-contant">
<div class="ProjectsDetails">
    <h2 class="heading">Projects Details</h2>
    <div class="row">
        <div class="col-md-12">
            <table id="table_id" class="display">
                <thead>
                    <tr>
                        <th>Project Name</th>
                        <th>Client Name</th>
                        <th>Company</th>
                        <th>Project Manager</th>
                        <th>Support Staff</th>
                        <th>Status</th>
                        <th>Actions</th>
                    </tr>
                </thead>
                <tbody>
                <?php
                foreach($project as $n)
                {
                    ?>
                    <tr>
                        <td><?php echo $n->project_name;?></td>
                        <td><?php echo $n->client_name;?></td>
                        <td><?php echo $n->company;?></td>
                        <td><a class="pro-circle"><img class="img-sm" src="<?php echo site_url('assets/image/man.png');?>"  data-toggle="tooltip" data-placement="bottom" title="<?php echo $n-> project_manager;?>" data-original-title="Click to deactivate the user"></a>&nbsp&nbsp </td>
                        <td><a class="pro-circle"><img class="img-sm" src="<?php echo site_url('assets/image/man.png');?>" data-toggle="tooltip" data-placement="bottom" title="<?php echo $n-> support_staff;?>" data-original-title="Click to deactivate the user"></a>&nbsp&nbsp 
                        <a class="pro-circle"><img class="img-sm" src="<?php echo site_url('assets/image/man.png');?>"></a>&nbsp&nbsp
                      <a class="pro-circle"><img class="img-sm" src="<?php echo site_url('assets/image/man.png');?>"></a></td>
                        <td><span class="icoact"></span> Active</td>
                        <td><a class="edit" href="<?php echo site_url('admin/project/edit/'.$n->id);?>"><i class="fa fa-pencil-square-o" ></i></a>&nbsp&nbsp<a class="delete"  href="<?php echo site_url('admin/project/delete/'.$n->id);?>"><i class="fa fa-trash-o"></i></a></td>
                    </tr>
                    <?php
                }
                ?>
                </tbody>
            </table>
        </div>
    </div>
</div>

这是我的 Project.php 控制器

public function index ()
{
  $data['company_name'] = $this->project_model->getAllCompanyName();
  $data['project'] = $this->project_model->getProjectDetails();
  $this->load->view('admin/project/index',$data);

}
function delete($id)
 {
   $this->project_model->delete($id); 
   $this->session->set_flashdata ('success','Project Deleted Sucessfully');
   redirect('admin/project/index');

 }

这是我的 Project_model.php ,删除函数

 function getProjectDetails()
 {
//table  (projects)

 $delete_flag=0;
 $data['project'] = $this->db->get_where('projects',array('delete_flag!='=>$delete_flag))->result_array();

}

function getById($id)
 {
   return $this->db->get_where('projects',array('id'=>$id))->row();

 }

function delete($id)
 {
  $delete_flag=0;
  $this->db->where('id',$id)->update('projects',array('delete_flag'=>$delete_flag));
    
 }

现在我可以成功地从前端和数据库中删除数据,如果您能帮助我如何获取确认消息,并在从前端删除它们的同时维护我的数据库中的数据,我将不胜感激?

这是数据库表

【问题讨论】:

  • 您想在删除记录前显示确认信息吗?
  • 请检查我的答案。

标签: php codeigniter


【解决方案1】:

仅在前端删除:

在您的项目数据库表中添加一个布尔列“delete_flag”,并在前端单击删除时将其更新为 TRUE。

然后在 Project 模型中更改您的加载方法以仅获取 delete_flag = 0 的项目

删除确认:

搜索模态对话框。您可以使用模态对话框轻松设置消息并确认按钮链接。也许您甚至正在使用已经提供它的模板。

在此处查看示例:https://www.w3schools.com/howto/howto_css_modals.asp

【讨论】:

  • 我刚刚根据您对维护数据库中数据的建议更新了我的代码,它不起作用,请您检查一下
  • 我实际上无法通过更新为 TRUE 来理解您的意思,也许这就是问题所在,如果您能提供代码,将不胜感激
  • 只需像这样将值设置为 1 $this-&gt;db-&gt;where('id',$id)-&gt;update('projects',array('delete_flag'=&gt;1));
  • 不工作,我收到错误:未定义的变量:project_model.php 中的 id 和视图中为 foreach() 提供的无效参数
【解决方案2】:

仅用于从前端而不是从数据库中删除数据:-

您应该在项目数据库表中添加一个列名delete_flag int 数据类型并将其更新为0,同时删除记录。

数据删除确认提示信息:-

<td><a class="delete"  href="<?php echo site_url('admin/project/delete/'.$n->id);?>"  onclick="return confirm('Are you sure want to Delete this Record?')"><i class="fa fa-trash-o"></i></a></td>

控制器代码 Project.php :-

function delete($id)
{
   $this->project_model->delete($id); 
   $this->session->set_flashdata ('success','Project Deleted Sucessfully');
   redirect('admin/project/index');

}

模型代码 Project_model.php :-

function getProjectDetails()
{
$delete_flag=0;
   $data['project'] = $this->db->get_where('projects',array('delete_flag!='=>$delete_flag))->result_array();
}


    function delete($id)
    {
          $delete_flag=0;
          $this->db->where('id',$id)->update('projects',array('delete_flag'=>$delete_flag));
        
    }

在你看来:-

仅在您的getProjectDetails() 中显示通过此查询具有delete_flag!=0 的记录

【讨论】:

  • 我听从了你的回答,我收到了确认信息,但删除功能不再起作用
  • 严重性:警告消息:为 foreach() 提供的参数无效 文件名:project/index.php 行号:51 回溯:文件:/opt/lampp/htdocs/ASGB/application/views/admin/ project/index.php 行:51 功能:_error_handler 文件:/opt/lampp/htdocs/ASGB/application/controllers/admin/Project.php 行:16 功能:查看 文件:/opt/lampp/htdocs/ASGB/index. php 行:315 函数:require_once
  • 我尝试添加新项目,并在删除前查看数据库中的 delete_flag 值是什么,它是 0
  • 现在用更新的答案更改模型中的 getProjectDetails()。
  • 仍然出现同样的错误,请检查我的更新代码
猜你喜欢
  • 1970-01-01
  • 2020-02-26
  • 1970-01-01
  • 1970-01-01
  • 2013-06-07
  • 1970-01-01
  • 1970-01-01
  • 2021-11-13
  • 1970-01-01
相关资源
最近更新 更多