memberikan kondisi else untuk data yg diupdate gagal pada sweetalert 2

ini script yg di .Js
const flashData = $('.flash-data').data('flashdata');

if (flashData) {
    Swal.fire({
        title: 'Success',
        text: 'Data Berhasil ' + flashData,
        icon: 'success'
    });
} //rencana saya kasih else untuk notif data yg gagal

//tombolHapus
$('.konfirmasiHapus').on('click', function (e) {

    e.preventDefault();
    const href = $(this).attr('href');

    Swal.fire({
        title: 'Apakah anda yakin?',
        text: "Data akan dihapus!",
        icon: 'warning',
        showCancelButton: true,
        confirmButtonColor: '#3085d6',
        cancelButtonColor: '#d33',
        confirmButtonText: 'Hapus Data!'
    }).then((result) => {
        if (result.isConfirmed) {
            document.location.href = href;
        }
    })

});
ini di view untuk memanggil notif dari sweetalertnya
<div class="flash-data" data-flashdata="<?= $this->session->flashdata('notif'); ?>"></div>
ini di controllernya
  if ($cek) {
            $this->session->set_flashdata('notif', 'Diubah', 'Success');
            redirect('Kitir');
          }else{
            $this->session->set_flashdata('notif', 'Diubah', 'Error');
            redirect('Kitir');
          }
avatar akbarimawandwicahya_google

Ditanyakan oleh @akbarimawandwicahya_google

5 Kontribusi 0 Poin

Login untuk menanggapi


Jawaban Terpilih

Kalo saya biasanya gini :
Controller :
if ($cek) {
	$notif = [
		'status' => 'success',
		'message' => 'Data berhasil diubah'
	];
}else{
	$notif = [
		'status' => 'error',
		'message' => 'Data gagal diubah'
	];
}
$this->session->set_flashdata('notif', $notif);
redirect('Kitir');

Saya taruh script ini biasanya di footer (template php-nya)
Javascript :
<script type="text/javascript">
<?php if(isset($_SESSION['notif']) && $_SESSION['notif'] !== ''): ?>
    Swal.fire({
      title: "<?php echo $_SESSION['notif']['status']; ?>",
      text: "<?php echo $_SESSION['notif']['message']; ?>",
      icon: "<?php echo $_SESSION['notif']['status']; ?>",
    });
<?php endif; ?>

//tombolHapus
$('.konfirmasiHapus').on('click', function (e) {

  e.preventDefault();
  const href = $(this).attr('href');

  Swal.fire({
    title: 'Apakah anda yakin?',
    text: "Data akan dihapus!",
    icon: 'warning',
    showCancelButton: true,
    confirmButtonColor: '#3085d6',
    cancelButtonColor: '#d33',
    confirmButtonText: 'Hapus Data!'
  }).then((result) => {
    if (result.isConfirmed) {
      document.location.href = href;
    }
  })

});
</script>

Tapi, untuk kasus agan, jika script sweetalertnya pakai file js terpisah, mungkin bisa seperti ini :

View untuk menampung nilai session dari CI-nya:
<div id="flash-data" data-type="<?= $_SESSION['notif']['status']; ?>" data-message="<?= $_SESSION['notif']['message']; ?>"></div>

Kemudian untuk JS-nya seperti ini :
<script type="text/javascript">
    const flashData = document.getElementById("flash-data");
    if(flashData) {

      const notifType = flashData.getAttribute('data-type');
      const notifMsg = flashData.getAttribute('data-message');

      Swal.fire({
        title: notifType,
        text: notifMsg,
        icon: notifType,
      });
    }


//tombolHapus
$('.konfirmasiHapus').on('click', function (e) {

  e.preventDefault();
  const href = $(this).attr('href');

  Swal.fire({
    title: 'Apakah anda yakin?',
    text: "Data akan dihapus!",
    icon: 'warning',
    showCancelButton: true,
    confirmButtonColor: '#3085d6',
    cancelButtonColor: '#d33',
    confirmButtonText: 'Hapus Data!'
  }).then((result) => {
    if (result.isConfirmed) {
      document.location.href = href;
    }
  })

});
</script>
Semoga membantu!
avatar ahanafi

Dijawab oleh @ahanafi

507 Kontribusi 218 Poin

Jawaban

tinggal tambahin else aja kan, else swal fire ,keterangannya error dah..
avatar nanto88

Dijawab oleh @nanto88

122 Kontribusi 56 Poin

Login untuk menanggapi


Kalo saya biasanya gini :
Controller :
if ($cek) {
	$notif = [
		'status' => 'success',
		'message' => 'Data berhasil diubah'
	];
}else{
	$notif = [
		'status' => 'error',
		'message' => 'Data gagal diubah'
	];
}
$this->session->set_flashdata('notif', $notif);
redirect('Kitir');

Saya taruh script ini biasanya di footer (template php-nya)
Javascript :
<script type="text/javascript">
<?php if(isset($_SESSION['notif']) && $_SESSION['notif'] !== ''): ?>
    Swal.fire({
      title: "<?php echo $_SESSION['notif']['status']; ?>",
      text: "<?php echo $_SESSION['notif']['message']; ?>",
      icon: "<?php echo $_SESSION['notif']['status']; ?>",
    });
<?php endif; ?>

//tombolHapus
$('.konfirmasiHapus').on('click', function (e) {

  e.preventDefault();
  const href = $(this).attr('href');

  Swal.fire({
    title: 'Apakah anda yakin?',
    text: "Data akan dihapus!",
    icon: 'warning',
    showCancelButton: true,
    confirmButtonColor: '#3085d6',
    cancelButtonColor: '#d33',
    confirmButtonText: 'Hapus Data!'
  }).then((result) => {
    if (result.isConfirmed) {
      document.location.href = href;
    }
  })

});
</script>

Tapi, untuk kasus agan, jika script sweetalertnya pakai file js terpisah, mungkin bisa seperti ini :

View untuk menampung nilai session dari CI-nya:
<div id="flash-data" data-type="<?= $_SESSION['notif']['status']; ?>" data-message="<?= $_SESSION['notif']['message']; ?>"></div>

Kemudian untuk JS-nya seperti ini :
<script type="text/javascript">
    const flashData = document.getElementById("flash-data");
    if(flashData) {

      const notifType = flashData.getAttribute('data-type');
      const notifMsg = flashData.getAttribute('data-message');

      Swal.fire({
        title: notifType,
        text: notifMsg,
        icon: notifType,
      });
    }


//tombolHapus
$('.konfirmasiHapus').on('click', function (e) {

  e.preventDefault();
  const href = $(this).attr('href');

  Swal.fire({
    title: 'Apakah anda yakin?',
    text: "Data akan dihapus!",
    icon: 'warning',
    showCancelButton: true,
    confirmButtonColor: '#3085d6',
    cancelButtonColor: '#d33',
    confirmButtonText: 'Hapus Data!'
  }).then((result) => {
    if (result.isConfirmed) {
      document.location.href = href;
    }
  })

});
</script>
Semoga membantu!
avatar ahanafi

Dijawab oleh @ahanafi

507 Kontribusi 218 Poin

Login untuk menanggapi


Terimasih mas Ahanafi sudah membantu, tapi masih ada bug untuk sweetalertnya masih belum muncul notifnya setelah update data.ย  itu ada yg salah di viewnya atau di controllernya mas?

untuk Javascriptnya yg ditaruh di footer udah saya coba juga, problemnya sama seperti yang diatas tidak muncul sweetalertnya mas

untuk yg undefined sudah gak error lagi setelah saya tambahin isset.
<div id="flash-data" data-type="<?= isset($_SESSION['notif']['status']) ? $_SESSION['notif']['status']:''; ?>" data-message="<?= isset($_SESSION['notif']['message']) ? $_SESSION['notif']['message']:''; ?>"></div>
avatar akbarimawandwicahya_google

Dijawab oleh @akbarimawandwicahya_google

5 Kontribusi 0 Poin

  • apa file sweetalert.js nya sudah di load di footer sebelumnya? Terus agan ini pake, metode yg pertama atau yg kedua ? - @ahanafi
  • sudah ane load di footer mas, ane coba pertama pakai metode Js terpisah kemudian metode kedua taruh JavaScriptnya di Footer dan probelmnya sama pop up sweetalert nya tidak muncul mas - @akbarimawandwicahya_google
  • coba di console browsernya ada error ngga? - @ahanafi

Tampikan semua | Login untuk menanggapi


Ini ada 1 yg error di console. tapi di Kitir.php tidak sampai line 380.
Screenshot-60.jpgScreenshot_60.jpg
Screenshot-61.jpgScreenshot_61.jpg
di Kitir.php ini yg saya ubah
$cek = $this->Perkutut_model->update_kitir($id_,$data);
          if ($cek) {
          	$notif = [
          		'status' => 'success',
          		'message' => 'Data Kitir Berhasil Diubah'
          	];
          }else{
          	$notif = [
          		'status' => 'error',
          		'message' => 'Data Kitir Gagal Diubah'
          	];
          }
          $this->session->set_flashdata('notif', $notif);
          redirect('Kitir');
Tapi saya cek di page yang lain error di consolenya berbeda, seperti contoh di page beranda error consolenya.
Screenshot-63.jpgScreenshot_63.jpg
avatar akbarimawandwicahya_google

Dijawab oleh @akbarimawandwicahya_google

5 Kontribusi 0 Poin

  • errornya ngga jelas gan, coba kirim full source code footernya seperti apa - @ahanafi

Login untuk menanggapi


ini full source code dari footer nya

<!-- ======= Footer ======= -->
<footer id="footer" style="width:auto;background-color:#4263D8">
    <div class="container-fixed" style="width:auto">
        <div class="copyright">
            &copy; Copyright <strong><span>MyKITIR | Perkutut Indonesia</span></strong>. All Rights Reserved
        </div>

    </div>
</footer><!-- End Footer -->

<a href="#" class="back-to-top"><i class="icofont-simple-up"></i></a>

<!-- Vendor JS Files -->
<script src="<?php echo base_url(); ?>assets/home/vendor/jquery/jquery.min.js"></script>
<script src="<?php echo base_url(); ?>assets/home/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="<?php echo base_url(); ?>assets/home/vendor/jquery.easing/jquery.easing.min.js"></script>
<script src="<?php echo base_url(); ?>assets/home/vendor/php-email-form/validate.js"></script>
<script src="<?php echo base_url(); ?>assets/home/vendor/jquery-sticky/jquery.sticky.js"></script>
<script src="<?php echo base_url(); ?>assets/home/vendor/venobox/venobox.min.js"></script>
<script src="<?php echo base_url(); ?>assets/home/vendor/waypoints/jquery.waypoints.min.js"></script>
<script src="<?php echo base_url(); ?>assets/home/vendor/counterup/counterup.min.js"></script>
<script src="<?php echo base_url(); ?>assets/home/vendor/owl.carousel/owl.carousel.min.js"></script>
<script src="<?php echo base_url(); ?>assets/home/vendor/isotope-layout/isotope.pkgd.min.js"></script>
<script src="<?php echo base_url(); ?>assets/home/vendor/aos/aos.js"></script>

<!-- Template Main JS File -->
<script src="<?php echo base_url(); ?>assets/home/js/main.js"></script>

<!-- <script src="<?php echo base_url(); ?>assets/home/css/my1.js"></script> -->

</body>

<script type="text/javascript">
<?php if(isset($_SESSION['notif']) && $_SESSION['notif'] !== ''): ?>
    Swal.fire({
      title: "<?php echo $_SESSION['notif']['status']; ?>",
      text: "<?php echo $_SESSION['notif']['message']; ?>",
      icon: "<?php echo $_SESSION['notif']['status']; ?>",
    });
<?php endif; ?>

if (flashData) {
  Swal.fire({
      title: 'Success',
      text: 'Data Berhasil ' + flashData,
      icon: 'success'
  });
}

//tombolHapus
$('.konfirmasiHapus').on('click', function (e) {

  e.preventDefault();
  const href = $(this).attr('href');

  Swal.fire({
    title: 'Apakah anda yakin?',
    text: "Data akan dihapus!",
    icon: 'warning',
    showCancelButton: true,
    confirmButtonColor: '#3085d6',
    cancelButtonColor: '#d33',
    confirmButtonText: 'Hapus Data!'
  }).then((result) => {
    if (result.isConfirmed) {
      document.location.href = href;
    }
  })

});
</script>

</html>
untuk di viewnya pakai yg ada sessionya apa yg awal punya saya itu kalau javascriptnya ditaruh di footer mas?
avatar akbarimawandwicahya_google

Dijawab oleh @akbarimawandwicahya_google

5 Kontribusi 0 Poin

Login untuk menanggapi


terimakasih banyak buat mas ahanafi sudah menyempatkan waktunya untukย  menjawab problem saya, untuk kasus ini udah solved mas. cuman tinggal yg upload gagal untuk max size belum clear
avatar akbarimawandwicahya_google

Dijawab oleh @akbarimawandwicahya_google

5 Kontribusi 0 Poin

Login untuk menanggapi


Login untuk gabung berdiskusi