【问题标题】:Jquery and Bootstrap 4 dataTable delete row on page 2 not workingJquery和Bootstrap 4 dataTable删除第2页上的行不起作用
【发布时间】:2018-08-08 16:05:44
【问题描述】:

美好的一天!我有一个 jquery 和 bootstrap 4 数据表,每行有一个分页和一个删除按钮,但是在第 1 页充满数据后,它将转到第 2 页。问题是第 2 页中带有删除按钮行的数据不起作用但是在第 1 页中,删除按钮完美运行..

这是我的餐桌代码:

<table class="table table-hover table-bordered" id="questionTable">
                                <thead>
                                    <tr>
                                        <th>No.</th>
                                        <th>Student</th>
                                        <th>Subject Code</th>
                                        <th>Semester</th>
                                        <th>SchoolYear</th>
                                        <th>Professor</th>
                                        <th></th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php  while ($row = $result -> fetch_object()): ?>
                                    <tr>
                                        <td><?php echo  $row->Subject_Student_Taken;?></td>
                                        <td><?php echo $row-> Student_ID;?></td>
                                        <td><?php echo $row-> Subject_Code;?></td>
                                        <td><?php echo $row-> Term_Name;?></td>
                                        <td><?php echo $row-> SY_Name;?></td>
                                        <td><?php echo $row-> Faculty_ID;?></td>
                                        <td class="text-center">
                                            <a  class="btn btn-sm btn-outline-primary text-muted" href="SubjectTaken_edit.php?Subject_Student_Taken=<?php echo $row->Subject_Student_Taken;?>">Edit</a>

                                            <a  data-fid="<?php echo  $row->Subject_Student_Taken;?>" title="Delete Faculty" data-toggle="modal" data-target="#delete_modal"  class="btn btn-sm btn-outline-danger delete-faculty-btn text-muted" >Delete</a>
                                        </td>
                                    </tr>
                                    <?php endwhile; ?>

                                </tbody>
                            </table>

这是我的删除代码:

if(!empty($_POST['delete'])) { 
            $id = $_POST['delete']; 
            $data->delete_StudentTakenHandle($id, $conn); 

         }

功能代码:

 function delete_StudentTakenHandle($id, $conn){
        $sql = "DELETE FROM subject_taken_handle WHERE Subject_Student_Taken=? ";
        $stmt = $conn->prepare($sql);
        $stmt->bind_param("i", $id);
        $stmt->execute();    
    }

模式代码:

<div class="modal fade" id="delete_modal" role="dialog">
                      <div class="modal-dialog">
                        <div class="modal-content">
                          <!-- Modal Header -->
                          <div class="modal-header">
                            <h4 class="modal-title">Delete Confirmaiton</h4>
                            <button type="button" class="close" data-dismiss="modal">&times;</button>
                          </div>
                          <!-- Modal body -->
                          <div class="modal-body">
                            <div class="alert alert-danger" role="alert">
                              Are you sure you want to delete selected record?
                            </div>
                          </div>
                          <!-- Modal footer -->
                         <div class="modal-footer">
                        <button type="button" class="btn btn-default" data-dismiss="modal">No</button>
                        <input type="hidden" name="delete"  id="row-id-to-delete">
                        <button type="submit" class="btn btn-danger" >Yes</button>
                      </div>
                        </div>
                      </div>
                    </div>

这是我的 jquery 代码:

<script>

        $('.delete-faculty-btn').on('click',function(){
         $("#row-id-to-delete").val($(this).data('fid'));

    });



</script>

【问题讨论】:

  • 什么版本的jQuery?
  • 它是 jquery-3.2.1
  • 您应该更新您的问题以指定您收到的错误消息。检查 Javascript 和 PHP 错误。

标签: php jquery mysql sql modal-dialog


【解决方案1】:

该错误很可能是由以下原因引起的:

设置 jQuery 事件时,仅显示第一页中的元素(现有的)。
由于 jQuery.on 函数仅将事件附加到现有元素,因此事件不会附加到其他页面的元素。

解决方案:

您应该使用表格的点击事件作为将事件附加到删除按钮的包装器。

这样,每次点击和更改页面时,删除按钮都会存在,jQuery.on 函数将能够为它们附加删除事件。

你应该像这样包装你的事件附加代码:

$("#questionTable").on("click", ".delete-faculty-button", function(){
   // attach your delete event here
});

阅读jQuery.on的文档了解更多信息。

【讨论】:

  • @jerico 这个答案是否有助于您解决问题?
【解决方案2】:

使用委托格式 on 而不是 click..on() | jQuery API Documentation

$('.delete-faculty-btn').on('click',function(){
     $("#row-id-to-delete").val($(this).data('fid'));

});

变成:

$(document).on("click", ".delete-faculty-btn", function () {
    $("#row-id-to-delete").val($(this).data('fid'));

        });

【讨论】:

    猜你喜欢
    • 2017-03-20
    • 2014-08-19
    • 2020-05-04
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 2017-06-15
    • 2017-09-15
    • 1970-01-01
    相关资源
    最近更新 更多