Проблема с удалением данных из базы данных с использованием ajax и php - PullRequest
0 голосов
/ 18 июня 2019

Я работаю над cms для свойств / объявлений в oop php в учебных целях. Я пытаюсь удалить фотографии из базы данных, используя ajax и php. У меня возникают проблемы, когда я нажимаю кнопку X на фотографии, которая, по моему мнению, удаляет ее, но когда я обновляю страницу, она снова всплывает, а также не удаляет ее из базы данных. Любая помощь очень ценится. Вот мой код:

index.php:

<?php foreach ($data1 as $key => $value) : ?>

    <?php if($key == 1) { ?>
    <div class="img-wrap">
        <span class="close">&times;</span>
        <img src="<?php echo '/public/photos/'.$value->name.'.'.$value->extension ?>" data-id="<?php echo $value->name ?>" width="150" height="150">
    </div>
    <?php } else { ?>
    <div class="img-wrap">
        <span class="close">&times;</span>
        <img src="<?php echo '/public/photos/'.$value->name.'.'.$value->extension ?>" data-id="<?php echo $value->name ?>" width="150" height="150">
                     </div>
                 <?php } ?>

<?php endforeach; ?>


<script>
$('.img-wrap .close').on('click', function() {
    var that = this;
    var id = $(that).closest('.img-wrap').find('img').data('id');
    var confirmation = confirm("Are you sure you want to delete this picture?");

    if (confirmation) {
        $.ajax({
            url: 'ads/deletephoto',
            //dataType: 'json',
            type: 'post',
            contentType: 'application/json',
            data: JSON.stringify( { "name": id } ),
            processData: false,
            success: function( data, textStatus, jQxhr ) {
              console.log( $(that).closest('.img-wrap') );
                $(that).closest('.img-wrap').hide();
            },
            error: function( jqXhr, textStatus, errorThrown ){
                console.log( errorThrown );
            }
        });
    }
});
</script>

AdModel:

public function deletePropertyPhoto($id)
{
  $this->db->query('DELETE FROM photos WHERE id=(SELECT photo_id FROM property_photo WHERE property_id=:property_id)');
  $this->db->bind(':property_id', $id);
  $this->db->execute();
  $this->db->query('DELETE FROM property_photo WHERE property_id=:property_id');
  $this->db->bind(':property_id', $id);
  $this->db->execute();
}

AdsController:

public function deletePhotoAction()
 {
    $userinfo = $this->Auth->Auth(['admin', 'moderator']);
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        $_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
        $_GET = filter_input_array(INPUT_GET, FILTER_SANITIZE_STRING);
        $this->Auth->isSet($_GET['id'], "ads/index");

            $photo = $this->AdModel->deletePropertyPhoto($_GET['id']);
            if ($photo != false) {
              if (file_exists('public/photos/' . $photo->photo)) {
                unlink('public/photos/' . $photo->photo);
              }
            }
            redirect('ads/index');

          echo "Property is not found!!!";
     } 
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...