<!DOCTYPE html>
<html> <head> <title>CRUD Firebase</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css" > <link rel="stylesheet" type="text/css" href="css/style.css"> <script src="https://www.gstatic.com/firebasejs/5.4.2/firebase.js"></script> <script type="text/javascript"> var config = { apiKey: "AIzaSyA71hPWUdEqgymNFTHg462yFJ_bWDAkHcA", authDomain: "exam-aff8f.firebaseapp.com", databaseURL: "https://exam-aff8f.firebaseio.com", projectId: "exam-aff8f", storageBucket: "", messagingSenderId: "133123398372" }; firebase.initializeApp(config); </script> </head> <body> <h1>Firebase JS CRUD</h1> <button class="btn btn-primary btnTambahData" data-toggle="modal" onclick="cleardata()" data-target="#exampleModal">Tambah Data</button> <table class="table table-striped" id="tbl_list_user"> <thead> <tr> <th scope="col">No.</th> <th scope="col">Nama</th> <th scope="col">Email</th> <th scope="col">Alamat</th> <th scope="col">Aksi</th> </tr> </thead> </table> <!-- Modal --> <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalLabel"></h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <form action="" method="POST" enctype="multipart/form-data"> <div class="modal-body"> <input type="hidden" name="id" id="id"> <div class="form-group"> <label for="nama">Nama</label> <input type="text" name="nama" id="nama" class="form-control" placeholder="Masukkan nama" required="true"> </div> <div class="form-group"> <label for="email">Email</label> <input type="email" name="email" id="email" class="form-control" placeholder="Masukkan email" required="true"> </div> <div class="form-group"> <label for="alamat">Alamat</label> <input type="text" name="alamat" id="alamat" class="form-control" placeholder="Masukkan alamat" required="true"> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> <button type="button" class="btn btn-primary" onclick="tambahData()" data-dismiss="modal">Simpan</button> </div> </form> </div> </div> </div> <!-- <script src="js/jquery.js"></script> --> <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <script src="js/jquery.easing.1.3.js"></script> <script src="js/bootstrap.min.js"></script> <script src="js/hm.js"></script> <script type="text/javascript"> var database = firebase.database(); var key = 0; database.ref("users").orderByKey().limitToLast(1).on('child_added',function(data) { key = parseInt(data.key, 10); key = key + 1; }); database.ref('users').on('value', function(snapshot) { var count = 0; if(snapshot.exists()){ $("#tbl_list_user tbody").remove(); var content = '<tbody>'; snapshot.forEach(function(data) { count+=1; var val = data.val(); content +='<tr>'; content += '<td>' + count + '</td>'; content += '<td>' + val.username + '</td>'; content += '<td>' + val.email + '</td>'; content += '<td>' + val.address + '</td>'; content += '<td> <button class="btn btn-danger" onclick="hapusData(' + data.key + ')"> Hapus Data </button> <button class="btn btn-primary tampilModalUbah" onclick="setData('+ data.key +')" data-toggle="modal" data-target="#exampleModal">Edit Data</button> </td>'; content +='</tr>'; key = 0; key = parseInt(data.key, 10); key = key + 1; }); content += '</tbody>'; $('#tbl_list_user').append(content); }else{ $("#tbl_list_user tbody").remove(); } }); function tambahData(){ if($('#exampleModalLabel').text() == "Tambah Data Baru"){ if(key == 0){ key = 1; } database.ref('users/' + key).set({ username: $('#nama').val(), email : $('#email').val(), address : $('#alamat').val() }); alert("Data Berhasil ditambah"); }else if($('#exampleModalLabel').text() == "Ubah Data"){ database.ref('users/' + $('#id').val()).update({ username: $('#nama').val(), email : $('#email').val(), address : $('#alamat').val() }); alert("Data Berhasil diupdate"); } } function cleardata(){ $('#id').val(""); $('#nama').val(""); $('#email').val(""); $('#alamat').val(""); } function setData(id){ $('#exampleModalLabel').html('Ubah Data'); database.ref('users/').child(id).once('value').then( function(snap) { const user = snap.val() $('#id').val(id); $('#nama').val(user.username); $('#email').val(user.email); $('#alamat').val(user.address); }); } function hapusData(id){ var answer = confirm("Hapus Data..?"); if (answer) { database.ref('users/' + id).remove(); alert("Data Berhasil dihapus"); } } $('.btnTambahData').on('click', function(){ $('#exampleModalLabel').html('Tambah Data Baru'); }); </script> </body> </html>
Comments
Post a Comment