Удаление изображения из базы данных SQL нажатием кнопки - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть цикл for, который генерирует идентификатор для каждой кнопки «Удалить»:

for ($x = 0; $x < $ImgAmount; $x++)
  {
  $ImageArray = explode(",", $imgId[$x]['no']);
  $ImageUniId = implode( $ImageArray );
   echo '<center><img contenteditable="false" style="max-width: 700; max-height: 1000" id="myimg" src="data:image/jpeg;base64,'.base64_encode( $img[$x]['image'] ).'"/>
   <br><form method="POST" enctype="multipart/form-data">
   <button type="button" name="delete" class="btn btn-danger bt-xs delete" id="'.$ImageUniId.'">Remove</button></center><br>
   </form>';

  }

Как я могу использовать эти конкретные идентификаторы для запуска функции, которая запускает мой код SQL?Я пытаюсь создать функцию, которая будет запускать этот SQL:

DELETE FROM testimage WHERE no = "'.$ImageUniId.'" <---this should be the id to that specific button.

Обновление

Хорошо, как вы, ребята, сказали, что я должен попробовать сделать это с ajax,но здесь у меня есть некоторые проблемы.

Documentation.php

echo"<script>
  $(document).on('click','.delete',function(){
      var Imgid = $(this).data('id');
      var action = 'delete';
        //you can use this ID to pass by ajax or url,whichever method you feel 
        //better.
        $.ajax({
          method: 'POST',
          url: 'RemoveImg.php',
          data: Imgid,
          success: function(data) {
            alert(data);
          } 
             });

  })
</script>";

А потом я сделал новый файл php

RemoveImg.php

<?php

if(isset($_POST["action"]))
{

    if($_POST["action"] == "delete")
    {
     $query = "DELETE FROM testimage WHERE no = $_POST["Imgid"]";
     $MysqliHandler->query($query);
      echo 'Image Deleted from Database';

    }
}

?>

Но когда я нажимаю на кнопку «удалить», я получаю эту ошибку:

Сообщение об ошибке с веб-страницы

Ответы [ 2 ]

0 голосов
/ 20 сентября 2019

Решение

Для получения идентификатора, сгенерированного из цикла for, используйте ajax.Я сделал два документа со следующим:

Documentation.php

for ($x = 0; $x < $ImgAmount; $x++)
  {
  $ImageArray = explode(",", $imgId[$x]['no']);
  $ImageUniId = implode( $ImageArray );
   echo '<img contenteditable="false" style="display: block;
   margin-left: auto;
   margin-right: auto;
   width: 40%;" id="myimg" src="data:image/jpeg;base64,'.base64_encode( $img[$x]['image'] ).'"/>
   <br><form method="POST" enctype="multipart/form-data">
   <div style="text-align: center;">
   <button type="button" name="delete" class="btn btn-danger bt-xs delete" id="'.$ImageUniId.'" data-id = "'.$ImageUniId.'" >Remove</button><br>
   </div>
   </form>';

  }

  echo"<script>
  $(document).on('click', '.delete', function(){
    var image_id = $(this).data('id');
    console.log(image_id);
    var action = 'delete';
    if(confirm('Are you sure you want to remove this image from database?'))
    {
     $.ajax({
      url:'RemoveImg.php',
      method:'POST',
      data:{image_id:image_id, action:action},
      success:function(data)
      {
       alert(data);
      }
     })
    }
   });
</script>";

В другом файле

RemoveImg.php

 if(isset($_POST["action"]))
{
 if($_POST["action"] == "delete")
 {
  $query = "DELETE FROM testimage WHERE no = '".$_POST["image_id"]."'";
  if(mysqli_query($MysqliHandler, $query))
   echo 'Image Deleted from Database';
  }
}

Моя проблема заключалась в том, что я не получил правильное соединение с базой данных, в новом файле, который я сделал.Но одну вещь, которую вы должны сделать, если хотите убедиться, что вы получили правильный идентификатор, создайте console.log (image_id) ;

0 голосов
/ 20 сентября 2019

с помощью jquery вы можете достичь этого

<button type="button" name="delete" class="btn btn-danger bt-xs delete" id="'.$ImageUniId.'" data-id = "'.$ImageUniId.'" >Remove</button>

и в сценарии вы можете написать событие для удаления класса как

<script>
  $(document).on('click','.delete',function(){
      var id = $(this).data('id');
        //you can use this ID to pass by ajax or url,whichever method you feel 
        //better.

  })
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...