Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Xóa nhiều hàng khỏi cơ sở dữ liệu bằng các hộp kiểm

Javascript
Vì bạn đang sử dụng jquery nên có một cách tốt hơn :)

<script type="text/javascript">
  var is_activate = true; // we will track which input button was clicked :)

  jQuery(function($) {
    $("#form input#check_all").change(function() {
      var inputs  = $("#form input[type='checkbox']");
      if ( $(this).is(":checked") ) {
        inputs.prop( "checked", true );
        // inputs.attr( "checked", true ); // if its not working
      }
      else {
        inputs.removeAttr( "checked" );
      }
    });

    // Track clicked button
    $("#form input[type=submit]").on("click",function(e) {
      is_activate = ( $(this).hasClass("activate_btn") ) ? true : false;
    });

    $("#form").submit(function(e) {
      e.preventDefault();
      var string  = ( is_activate ) ? 'activate' : 'delete';
      var data    = $(this).serialize();
      var checked = $(this).find("input[name='data[]']:checked").length;
      if ( checked == 0 ) {
        alert( "Please select a comment(s) to "+string+"." );
        return false;
      }
      var text  = "Are you sure you want to "+string+" these comment"+( ( checked == 1 ) ? "?" : "s?" );
      if ( confirm( text ) ) {
        $.ajax({
          url: 'resources/ajax/'+( ( is_activate ) ? 'ajax_activate_comment.php' : 'ajax_delete_comment.php' ),
          type: 'post',
          data: data,
          success: function( data ) {

          }
        });
      }
    });
}); 
</script>

HTML

<form method="post" id="form">
  <label>Check All</label>
  <input type="checkbox" id="check_all" value="">

  <label>Here im displaying record from database and</label>
  <input name="data[]" type="checkbox" id="data1" value="1">
  <input name="data[]" type="checkbox" id="data2" value="2">

  <!-- Activate Button -->
  <input class="activate_btn" type="submit" name="activate" value="Activate" id="submit">
  <!-- Delete Button -->
  <input class="delete_btn" type="submit" name="delete" value="Delete" id="submit">
</form>

PHP
Một truy vấn duy nhất là đủ :)

<?php
  if ( isset( $_POST['data'] ) ) {
    $id_array = $_POST['data'];
    if ( !empty( $id_array ) ) {
      $id_array = implode( ",", $_POST['data'] ); // dont forget to sanitize
      $sql = $db->query( "DELETE FROM comments WHERE `id` IN (".$id_array.")" );
    }
  }
?>

Và hãy nhớ rằng không tốt khi thực hiện tất cả điều này ở phía máy khách.
Bạn có thể thực hiện POST yêu cầu một tệp duy nhất, vì mỗi input của bạn nút có một tên duy nhất.
Vì vậy, trong PHP của bạn mã, bạn có thể tìm thấy nút nào đã được nhấp vào như thế này.

<?php
  if ( isset( $_POST["activate"] ) ) {
    $sql  = $db->query( "UPDATE comments SET status = '1' WHERE `id` IN (".$id_array.")" );
  }
  else {
    $sql  = $db->query( "DELETE FROM comments WHERE `id` IN (".$id_array.")" );
  }
?>

trông thật đơn giản :) Phải không?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách hiệu quả để cập nhật / điền cơ sở dữ liệu mysql với XML bên ngoài

  2. Biến hệ thống MESSAGE_TEXT không hoạt động với câu lệnh SIGNAL trong Mysql?

  3. Python MySql Insert không hoạt động

  4. Nhiều truy vấn MYSQL so với nhiều vòng lặp foreach php

  5. Điều gì sẽ xảy ra nếu một trình kích hoạt không thành công?