menghapus / delete file dengan php jquery ajax menggunakan fungsi UNLINK

assalamualaikum...

malam para mastah sekolah koding..

saya ada masalah pada saat menghapus gambar di direktori file saya..

jadi kronologi nya pada saat saya menghapus gambar di browser saya, gambarnya terhapus baik di browser maupun di database nya. tetapi di direktori file saya yang bernama asset, nama gambar tersebut tidak ikut terhapus.

mohon bantuan nya para mastah.

berikut kodingan html nya :

<?php while($row = mysqli_fetch_assoc($isi_buku)): ?>
          <div class="item" id="hapus_<?= $row['id']; ?>">
            <div class="item-0">
                <div class="content-0">
                  <img src="asset/<?= $row['gambar']; ?>" class="gambar_" style="width:180px; height:240px; padding:10px;"alt="" />

                  <div class="fluid-buku">
                    <a href="data_singgle_page.php?id=<?= $row['id']; ?>" class="fluid-judul" style="cursor:default;"><h4><?= $row['judul']; ?></h4></a>
                    <p class="stock" style="cursor:default;"><?= $row['stok']; ?></p>
                    <p class="h_lama" style="cursor:default;">Rp <?= $row['harga']; ?></p>
                    <p style="cursor:default; margin-bottom:5px;">Hemat Rp <?= $row['hemat']; ?></p>
                    <h5 style="cursor:default;">Rp <?= $row['harga_baru']; ?></h5>
                  </div>

                  <div class="button-view">
                    <a href="#item" rel="nofollow" class="btn-chart keranjang baru">
                      <div class="keranjang-1">
                        <i class="fa fa-shopping-basket fa-3x" aria-hidden="true"></i>
                      </div>

                      <div class="keranjang-0">
                        <i class="fa fa-shopping-basket fa-3x" aria-hidden="true"></i>
                      </div>
                    </a>

                    <a href="data_singgle_page.php?id=<?= $row['id']; ?>" rel="nofollow" class="btn btn-view">
                      <div class="view-1">
                        <i class="fa fa-eye fa-3x" aria-hidden="true"></i>
                      </div>

                      <div class="view-0">
                        <i class="fa fa-eye fa-3x" aria-hidden="true"></i>
                      </div>
                    </a>
                  </div>

                  <?php if($super_user == true): ?>
                  <div class="button-aksi">
                    <div class="btn-edit-hapus">
                      <div class="btn-edit">
                        <a href="data_edit_buku.php?id=<?= $row['id']; ?>" class="edit"><i class="fa fa-pencil-square-o fa-2x" aria-hidden="true"></i><br>
                        <span class="edit-0">Edit</span></a>
                      </div>

                      <div class="btn-hapus">
                        <a href="#item" class="hapus" data-id="<?= $row['id']; ?>"><i class="fa fa-trash-o fa-2x"   aria-hidden="true"></i><br>
                        <span class="hapus-1">Hapus</span></a>
                      </div>
                    </div>
                  </div>
                  <?php endif;?>
                </div>
            </div>
          </div>
          <?php endwhile; ?>

dan yang kodingan jquery ajax nya:

$(document).on('click','.hapus', function(){
        var id = $(this).attr('data-id');
        var gambar = $('.gambar_').attr('src');

        $.ajax({
          url: "data_hapus_penjualan.php",
          method: "POST",
          data: {ids:id,gambars:gambar},
          success: function(data){
            $('#hapus_'+id).fadeOut('slow');
          }
        });
      });

dan satu lagi kodingann php nya :

<?php
  require_once 'core/init.php';
  global $link;

  $id = $_POST['ids'];
  $gambar = $_POST['gambars'];

  $query  = "DELETE FROM penjualan WHERE id='$id'";
  $result = mysqli_query($link, $query);
  unlink($gambar);
  if ($result) {
    echo "Berhasil";
  }else{
    echo "Gagal";
  }
?>

karena sebelum - sebelumnya saya tidak pernah menggunakan fungsi unlink ini pada proyek - proyek belajar website saya.

semoga pertanyaan jelas dan dapat dimengerti..

mohon solusinya para mastah..

terima kasih sebelum nya.

avatar BadRabbit
@BadRabbit

149 Kontribusi 56 Poin

Diperbarui 7 tahun yang lalu

3 Jawaban:

coba di unlink manual dulu, variable gambarnya langsung string path image, tidak dari post.. berhasil atau tidak ? soalnya saya udh coba juga, dan pada asset image tidak terhapus, tetapi muncul pesan error permission directory, naah karena barangkali menggunakan linux mungkin permission folder nya, di set ' chmod -R 777 namafolder/ ' dulu..

barangkali sama permasalahannya :)

avatar gunalirezqimauludi
@gunalirezqimauludi

350 Kontribusi 243 Poin

Dipost 7 tahun yang lalu

saya sudah unlink manual agan @gunalirezqimauludi dan hasil nya berhasil..

avatar BadRabbit
@BadRabbit

149 Kontribusi 56 Poin

Dipost 7 tahun yang lalu

Jawaban Terpilih

ketemu gan permasalahan nya jadi nama gambar yang ada di folder asset saya tidak terbaca kalo belum saya keluar kan nama gambar saya yang ada di database..

jadi kodingan nya seperti ini setelah saya tampilkan data nama gambar saya di database nya terlebih dahulu, baru saya hapus dengan fungsi UNLINK tersebut.

ini kodingan html nya :

<?php while($row = mysqli_fetch_assoc($isi_buku)): ?>
          <div class="item" id="hapus_<?= $row['id']; ?>">
            <div class="item-0">
                <div class="content-0">
                  <img src="asset/<?= $row['gambar']; ?>" class="gambar_" style="width:180px; height:240px; padding:10px;"alt="" />

                  <div class="fluid-buku">
                    <a href="data_singgle_page.php?id=<?= $row['id']; ?>" class="fluid-judul" style="cursor:default;"><h4><?= $row['judul']; ?></h4></a>
                    <p class="stock" style="cursor:default;"><?= $row['stok']; ?></p>
                    <p class="h_lama" style="cursor:default;">Rp <?= $row['harga']; ?></p>
                    <p style="cursor:default; margin-bottom:5px;">Hemat Rp <?= $row['hemat']; ?></p>
                    <h5 style="cursor:default;">Rp <?= $row['harga_baru']; ?></h5>
                  </div>

                  <div class="button-view">
                    <a href="#item" rel="nofollow" class="btn-chart keranjang baru">
                      <div class="keranjang-1">
                        <i class="fa fa-shopping-basket fa-3x" aria-hidden="true"></i>
                      </div>

                      <div class="keranjang-0">
                        <i class="fa fa-shopping-basket fa-3x" aria-hidden="true"></i>
                      </div>
                    </a>

                    <a href="data_singgle_page.php?id=<?= $row['id']; ?>" rel="nofollow" class="btn btn-view">
                      <div class="view-1">
                        <i class="fa fa-eye fa-3x" aria-hidden="true"></i>
                      </div>

                      <div class="view-0">
                        <i class="fa fa-eye fa-3x" aria-hidden="true"></i>
                      </div>
                    </a>
                  </div>

                  <?php if($super_user == true): ?>
                  <div class="button-aksi">
                    <div class="btn-edit-hapus">
                      <div class="btn-edit">
                        <a href="data_edit_buku.php?id=<?= $row['id']; ?>" class="edit"><i class="fa fa-pencil-square-o fa-2x" aria-hidden="true"></i><br>
                        <span class="edit-0">Edit</span></a>
                      </div>

                      <div class="btn-hapus">
                        <a href="#item" class="hapus" data-id="<?= $row['id']; ?>"><i class="fa fa-trash-o fa-2x" aria-hidden="true"></i><br>
                        <span class="hapus-1">Hapus</span></a>
                      </div>
                    </div>
                  </div>
                  <?php endif;?>
                </div>
            </div>
          </div>
          <?php endwhile; ?>

dan yang ini kodingan jquery ajax nya :

$(document).on('click','.hapus', function(){
        var id = $(this).attr('data-id');

        $.ajax({
          url: "data_hapus_penjualan.php",
          method: "POST",
          data: {ids:id},
          success: function(data){
            $('#hapus_'+id).fadeOut('slow');
          }
        });
      });

dan yang terakhir ini kodingan php nya (Kunci Permasalahan nya Ada Di Bagian Ini):

<?php
  require_once 'core/init.php';
  global $link;

  $id = $_POST['ids'];

  $query1   = "SELECT * FROM penjualan WHERE id='$id'";
  $result1  = mysqli_query($link, $query1);

  if ($result1) {
    while ($row = mysqli_fetch_assoc($result1)) {
      $gambar = $row['gambar'];
    }
  }

  $query  = "DELETE FROM penjualan WHERE id='$id'";
  $result = mysqli_query($link, $query);

  if ($result) {
    unlink('asset/'.$gambar);
    echo "Berhasil";
  }else{
    echo "Gagal";
  }
?>

avatar BadRabbit
@BadRabbit

149 Kontribusi 56 Poin

Dipost 7 tahun yang lalu

Login untuk ikut Jawaban