Как удалить флажок множественного использования с помощью вызова Ajax

#php #jquery #ajax #checkbox #sql-delete

#php #jquery #ajax #флажок #sql-удалить

Вопрос:

я пытаюсь удалить значения с помощью флажка с помощью вызова ajax, может ли кто-нибудь мне помочь.

не удалось найти ошибку и еще одну вещь, это шаблон, и у меня есть функция проверки всех встроенных, поэтому нужно изменить любой встроенный код для флажка, это моя форма листинга:

 <form id="stafflistForm">
<input type="hidden" name="checkedids" value="<?php echo $staffResults['id_staff']; ?>">
<button id="deleteChecked"><i class="fa fa-trash-o"></i></button>
</form>
  

Это мой Ajax-скрипт:

 <script language="JavaScript">  
    $("#deleteChecked").click(function()
    {
        $("#delshowMessageDiv").hide();
        $("#delshowMessage").html('');
        $.ajax({
            url: "staffcontroller.php",
            method: "POST",
            data: { delData : $("#stafflistForm").serialize(), 'action':'delete'},
            dataType: "json",
            success: function (response) {
                if(response["success"]==true)
                {
                    $("#delshowMessageDiv").hide();
                    $("#delshowSuccessMessageDiv").show();
                    $("#delshowSuccessMessage").html(response["message"]);
                    }else{
                    $("#delshowMessageDiv").show();
                    $("#delshowMessage").html(response["message"]);
                }   
            },
            error: function (request, status, error) {
                $("#hshowMessageDiv").show();
                $("#hshowMessage").html("OOPS! Something Went Wrong Please Try After Sometime!");
            }
        });
        return false;
    });     
</script>
  

И это моя страница контроллера:

 else if($_REQUEST['action']=='delete'){
    $delids=explode(",",$_REQUEST["checkedids"]);
    $count=count($delids);
    for($i=0;$i<$count;$i  )
    {
        $delQuery= $conn->query("DELETE FROM os_staff WHERE id_staff=".$delids[$i]);
    }
        if($delQuery){
        $response['message'] = "<strong>Success!</strong>Staff Deleted Successfully.";
        $response['success'] = true;
        }else{
        $response['message'] = "<strong>Warning!</strong> Staff Not Deleted.Please Check Carefully..";
        $response['success'] = false;
    }
    echo json_encode($response);
    exit;
}
  

Комментарии:

1. Не используйте атрибут html id , если вы используете его многократно id="deleteChecked" . Вместо этого используйте селектор класса или атрибут данных. Это должно помочь решить вашу проблему.

2. Вы можете использовать предложение WHERE IN в SQL: $delQuery= $conn->query("DELETE FROM os_staff WHERE staff IN ('9','7','6')); просто измените значение ваших форматов на этот формат (‘9′,’7′,’6’) вы можете использовать функцию implode()

Ответ №1:

Прежде всего: не используйте идентификатор атрибута html, если вы используете его multipli id =»deleteChecked». Вместо этого используйте селектор класса или атрибут данных.

Вот небольшой скрипт, который покажет вам, как вы можете улучшить свой код. Это должно помочь вам решить вашу проблему.

 $(document).ready(function() {
  
  $('.delete-user').on('click', function(e) {
    // do here your ajax
    
    // this is just example
    $(this).parents('tr').remove();
    
  });
  
});  
 .fa-trash-o {
  padding: 3px;
}  
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td>
      <form class="stafflistForm">
        <input type="hidden" name="checkedids" value="<?php echo $staffResults['id_staff']; ?>">
        <button class="delete-user"><i class="fa fa-trash-o"></i></button>
      </form>
    </td>
    <td>Tom</td>
  </tr>  
  <tr>
    <td>
      <form class="stafflistForm">
        <input type="hidden" name="checkedids" value="<?php echo $staffResults['id_staff']; ?>">
        <button class="delete-user"><i class="fa fa-trash-o"></i></button>
      </form>
    </td>
    <td>Peter</td>
  </tr> 
  <tr>
    <td>
      <form class="stafflistForm">
        <input type="hidden" name="checkedids" value="<?php echo $staffResults['id_staff']; ?>">
        <button class="delete-user"><i class="fa fa-trash-o"></i></button>
      </form>
    </td>
    <td>Son Goku</td>
  </tr> 
  <tr>
    <td>
      <form class="stafflistForm">
        <input type="hidden" name="checkedids" value="<?php echo $staffResults['id_staff']; ?>">
        <button class="delete-user"><i class="fa fa-trash-o"></i></button>
      </form>
    </td>
    <td>Gozilla</td>
  </tr>   
</table>  

Комментарии:

1. Он также может использовать $("button#deleteChecked").click(function()

Ответ №2:

PHP-скрипт должен установить правильный mime-тип через:

header('Content-type: application/json');

Кроме того,: Почему у вас есть отдельные DIV-контейнеры для сообщений об ошибках и успехах? Почему бы не иметь один div с обратной связью, который получает класс CSS, который выполняет форматирование (на основе ошибки или успеха).