【问题标题】:only first row is getting deleted while the other data is not只有第一行被删除,而其他数据没有
【发布时间】:2020-01-29 10:18:47
【问题描述】:

当我点击第一行的删除模态时,模态弹出并且数据被删除。如果我单击第一行以外的行,则会将错误显示为 id undefined。

控制器:

public function project_show(){
    $this->load->view('project_show',$data);//page where delete button is present
    $this->load->view('project_del');//modal page which opens on delete button
 }

public function delete_get_id($pcode){
    if($this->input->post('deleteproj'))
    {
        $this->project_model->delete_project($pcode);
    }
}

ajax:

$('#deletebutton').click(function(){
  var pcode = $(this).data('id');
  $('#deleteproject').data('id', pcode); 
});

$('#deleteproject').click(function(){
  var pcode = $(this).data('id');
  $('#deletemodal').modal('hide');
  $('body').removeClass('modal-open');
  $('.modal-backdrop').remove();
  console.log(pcode);
  $.ajax({
    type: "POST",
    url: "<?php echo base_url(); ?>" + "index.php/project/delete_get_id/"+ pcode,
    data: {
      pcode: pcode,
      deleteproj: 1,
    },
    success: function (data) {
      $("#deletemodal").modal('hide');
      showproject();
    }
  });
});

按钮的查看页面:

<button id="deletebutton" class="btn btn-danger btn-xs" data-toggle="modal" data-target="#deletemodal" data-id="<?php echo $row->project_code;?>"><span class = "fa fa-trash-o"></span> Delete</button>

查看模态页面:

<div class="modal fade bs-example-modal-sm" id="deletemodal" ...>
    .....
    <button class="btn btn-danger btn delete" id="deleteproject"><span class="glyphicon glyphicon-trash"></span>Delete</button>

如何将 id 和“data-target”标签从按钮所在的页面传递到模式页面,以便删除特定的行

【问题讨论】:

  • 您不应为同一页面上的多个 HTML 元素使用相同的 ID。
  • 改用类名。
  • 感谢您的回答。如果你让我知道我该怎么做(检索班级名称)@KoalaYeung,将会很有帮助
  • 我的意思是不要使用id="deleteproject",您可以使用class="deleteproject btn btn-danger btn delete"。没必要找回来吧?
  • 这会为行提供唯一的 id 吗?我需要在模态页面中添加data-target="deletemodal&lt;?php $row-&gt;project_code?&gt;" 之类的内容并检索与id="deletemodal&lt;?php $row-&gt;project_code?&gt;" 相同的内容,这在不使用mvc 的情况下可以正常工作。 @KoalaYeung

标签: php html ajax codeigniter


【解决方案1】:

请注意ID selector 在 HTML 文档中应该是唯一的。和 jQuery expects that to be true。所以不要使用 ID,你应该使用类名作为删除按钮

$('.deletebutton').click(function(){
  var pcode = $(this).data('id');
  $('#deleteproject').data('id', pcode); 
});

//...
<button
  class="deletebutton btn btn-danger btn-xs"
  data-toggle="modal"
  data-target="#deletemodal"
  data-id="<?php echo $row->project_code;?>"
>
  <span class = "fa fa-trash-o"></span> Delete
</button>

假设您的 showproject() 函数不会意外删除/重新创建您的 #deleteproject 按钮,那么事情应该适合您。

【讨论】:

  • 它正在工作。非常感谢您花费宝贵的时间来回答:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-17
  • 2018-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多