TOP ▲ itcore TOPTIPSjq_row_ope.php  タグ:javascript php テーブル jquery laravel

テーブルの行を操作する。追加。削除。上下に移動。jQuery | itcore 2021年

    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/js/bootstrap.bundle.min.js" integrity="sha384-ygbV9kiqUc6oa4msXn9868pTtWMgiQaeYH7/t7LECLbyPA2x65Kgf80OJFdroafW" crossorigin="anonymous"></script>

<?php
$btn_row_up = "<button class='btn_fld_up btn btn-sm btn-warning' type=button>上へ</button>";
$btn_row_down = "<button class='btn_fld_down btn btn-sm btn-warning' type=button>下へ</button>";
$btn_row_add = "<button class='btn_fld_add btn btn-sm btn-info' type=button>行追加</button>";
$btn_row_del = "<button class='btn_fld_del btn btn-sm btn-dark' type=button>行削除</button>";
$html_row = "<tr><td>$btn_row_up $btn_row_down $btn_row_add $btn_row_del";
?>

<table>
{!! $html_row !!}
</table>

<script>
$(function(){
  // 上へ
  $(document).on("click", '.btn_fld_up', function(){
    let $row = $(this).closest("tr");
    let $row_prev = $row.prev("tr");
    if($row.prev.length) {
       $row.insertBefore($row_prev);
    }
  });
  // 下へ
  $(document).on("click", '.btn_fld_down', function(){
    let $row = $(this).closest("tr");
    let $row_next = $row.next("tr");
    if($row_next.length) {
      $row.insertAfter($row_next);
    }
  });
  // 行の追加
  $(document).on("click", '.btn_fld_add', function(){
    $(this).parent().parent().after("{!! $html_row !!}");
  });
  // 行の削除
  $(document).on("click", '.btn_fld_del', function(){
    $(this).parent().parent().remove();
  });
});
</script>