bagaimana membedakan respon FALSE dengan 0 ?

hay gan , saya menggunakan ajax untuk menghapus data. jika query berhasil akan melempar nilai yang dinamis untuk di gunakan . jika query gagal nilainya false . tapi di jquery false terbaca sebagai angka 0. dan query yang berhasil mengolah data juga hasilnya memungkinkan untuk mengeluarkan angka 0. jadi si script ajaknya bingung . padahal query berhasil di olah tapi responya gagal menghapus karna query menghasilkan angka 0. mohon pencerahanya . thanks

![](https://skspace.sgp1.digitaloceanspaces.com/forums/images/tanya koding 1.png)

avatar Saputroandhi
@Saputroandhi

509 Kontribusi 162 Poin

Diperbarui 7 tahun yang lalu

5 Jawaban:

kasus bagus.. coba diujinya pake sama dengan tiga kali, untuk menguji tipe data juga

 if($hasilBackend === false) { //berarti false }
//atau sebaliknya
 if($hasilBackend === 0) { //berarti angka 0 }

alternatif lain pake fungsi gettype untuk ngecek tipedata http://php.net/manual/en/function.gettype.php

*dikabarin ya mana yang berfugnsi, biar yang lain belajar

avatar hilmanski
@hilmanski

2672 Kontribusi 2133 Poin

Dipost 7 tahun yang lalu

Baik. Segera d update.

avatar Saputroandhi
@Saputroandhi

509 Kontribusi 162 Poin

Dipost 7 tahun yang lalu

Pake ini gan . ane ganti jadi !false kalo qury ga berjalan , coz ampir ga mungkin nilai total harga nilainya 1Rupiah. coz pake === belum jga bisa , atau ada yang salah sama kodingan ane hihihihihi...

ajaxnya

<script type="text/javascript">
  $(document).ready(function() {
                     $('.hapus_matpel').click(function (){
					 var hapus_matpel = $(this).attr('data-id');
                         $.ajax({
                             method : 'POST',
                             url	: 'saved.matpel.secure',
			     data	: {	hapus_matpel : hapus_matpel  },
                success : function(data){
					if (data == !false ){
				     alert ('Gagal menghapus,cek koneksi atau Silakan hubungi admin');
					}
					else
					{
					$('#'+hapus_matpel).remove();
					 $('#total_inv').html(data+' IDR');
					 alert (data);

    }
								}

                         });
                         });
                         });
</script>

php backendnya nya

$delete_matpel_tokeranjang_query = mysql_query("DELETE FROM keranjang_matpel WHERE keranjang_matpel_kodematpel = '$hapus_matpel'
												  AND keranjang_matpel_npm = '$siswa_npm' ");

if ($delete_matpel_tokeranjang_query){
		$link=koneksi_db();
		$siswa_npm = $_SESSION['siswa_npm'];
  		$total_invoice_query = mysql_query ("SELECT SUM(matpel_price) AS total_invoice FROM mata_pelajaran
						     JOIN keranjang_matpel ON mata_pelajaran.matpel_kode keranjang_matpel.keranjang_matpel_kodematpel WHERE keranjang_matpel_npm = '$siswa_npm' ");

		 $total2 =mysql_fetch_assoc($total_invoice_query);

   echo  $total2[total_invoice];

  }else{  echo !false ; }

sejauh ini bwerjalan , tapi bakal ada kendala kalo ada jumlah harga yang totalnya 1 Perak rupiah :D

avatar Saputroandhi
@Saputroandhi

509 Kontribusi 162 Poin

Dipost 7 tahun yang lalu

Nah bagus udah tahu kasusnya kapan bisa error, ngga boleh dibiarkan tapi hehe. Udah coba cara yang kedua? Cek tipedatanya apakah dia boolean atau number.

Ada ide lagi, coba dibackendnya kalo emang error, langsung return text aja "error" nah frontend tinggal ngecek juga apakah "error" atau bukan

avatar hilmanski
@hilmanski

2672 Kontribusi 2133 Poin

Dipost 7 tahun yang lalu

return text 'error' cara pertama yang saya gunakan gan hilmman, tapi kayanya saya ada salah koding. karna walau si back end return 'error' tetep ngejalanin kondisi else and ngumpetin baris matkul(jquery remove) yang di hapus padahal query ga berhasil ngapus data (query sengaja di salahin buat ngecek front end ngejalanin perintah salah).

![](https://skspace.sgp1.digitaloceanspaces.com/forums/images/tamya 2.png)![](https://skspace.sgp1.digitaloceanspaces.com/forums/images/error tamya 3.png)

avatar Saputroandhi
@Saputroandhi

509 Kontribusi 162 Poin

Dipost 7 tahun yang lalu

Login untuk ikut Jawaban