Minggu, 27 Mei 2018

MEMBUAT CRUD PHP AJAX



 Dalam tutorial ini, kami membuat sistem komentar dasar yang terdiri dari formulir dengan dua bidang input: nama dan komentar. Seorang pengguna dapat menambahkan komentar pada halaman tanpa halaman reload (menggunakan Ajax) dan komentar ini disimpan dalam tabel komentar dalam database.

Semua komentar dalam database ditampilkan pada halaman dan pengguna dapat menghapus komentar hanya dengan melayang di atasnya dan mengklik tombol hapus yang muncul di komentar dan Ini juga  menghapus komentar tanpa memuat ulang halaman juga.

Aplikasi ini hanya membutuhkan satu tabel basis data. Langsung saja ke tutorial

1.instal XAMPP dan jalankan
2.Buat data base di localhost/phpmyadmin
3.Buat nama data base (ajax_crud) ikuti isi tabel
*id – int(11)
*name – Varchar(255)
*comment – text
4.Buat index.php untuk memnuat displays comments
5.Buat server.php untuk koneksi dari php dan database
6.Download jQuery di https://jquery.com/
7.Buat scripst.js untuk impementasi ajak dan jQuery
8.Buat styles.css untuk membuat tampilan
9.Semua itu index.php, server.php, scripst.js, styles.css (itu semua dijadikan 1 folser di C:\xampp\htdocs)

Jika siap buka sublime atau terserah maka akan seperti ini

Klik index.php dan copy code di bawah

<?php include('server.php'); ?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Insert and Retrieve data from MySQL database with ajax</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <div class="wrapper">
                    <?php echo $comments; ?>
                    <form class="comment_form">
      <div>
        <label for="name">Name:</label>
                    <input type="text" name="name" id="name">
      </div>
      <div>
                    <label for="comment">Comment:</label>
                    <textarea name="comment" id="comment" cols="30" rows="5"></textarea>
      </div>
      <button type="button" id="submit_btn">POST</button>
      <button type="button" id="update_btn" style="display: none;">UPDATE</button>
                    </form>
  </div>
</body>
</html>
<!-- Add JQuery -->
<script src="jquery.min.js"></script>

<script src="scripts.js"></script>

Buka server dan copy code di bawah

<?php
  $conn = mysqli_connect('localhost', 'root', '', 'ajax_crud');
  if (!$conn) {
    die('Connection failed ' . mysqli_error($conn));
  }
  if (isset($_POST['save'])) {
    $name = $_POST['name'];
    $comment = $_POST['comment'];
    $sql = "INSERT INTO comments (name, comment) VALUES ('{$name}', '{$comment}')";
    if (mysqli_query($conn, $sql)) {
      $id = mysqli_insert_id($conn);
      $saved_comment = '<div class="comment_box">
          <span class="delete" data-id="' . $id . '" >delete</span>
          <span class="edit" data-id="' . $id . '">edit</span>
          <div class="display_name">'. $name .'</div>
          <div class="comment_text">'. $comment .'</div>
        </div>';
      echo $saved_comment;
    }else {
      echo "Error: ". mysqli_error($conn);
    }
    exit();
  }
  // delete comment fromd database
  if (isset($_GET['delete'])) {
    $id = $_GET['id'];
    $sql = "DELETE FROM comments WHERE id=" . $id;
    mysqli_query($conn, $sql);
    exit();
  }
  if (isset($_POST['update'])) {
    $id = $_POST['id'];
    $name = $_POST['name'];
    $comment = $_POST['comment'];
    $sql = "UPDATE comments SET name='{$name}', comment='{$comment}' WHERE id=".$id;
    if (mysqli_query($conn, $sql)) {
      $id = mysqli_insert_id($conn);
      $saved_comment = '<div class="comment_box">
        <span class="delete" data-id="' . $id . '" >delete</span>
        <span class="edit" data-id="' . $id . '">edit</span>
        <div class="display_name">'. $name .'</div>
        <div class="comment_text">'. $comment .'</div>
      </div>';
      echo $saved_comment;
    }else {
      echo "Error: ". mysqli_error($conn);
    }
    exit();
  }

  // Retrieve comments from database
  $sql = "SELECT * FROM comments";
  $result = mysqli_query($conn, $sql);
  $comments = '<div id="display_area">';
  while ($row = mysqli_fetch_array($result)) {
    $comments .= '<div class="comment_box">
        <span class="delete" data-id="' . $row['id'] . '" >delete</span>
        <span class="edit" data-id="' . $row['id'] . '">edit</span>
        <div class="display_name">'. $row['name'] .'</div>
        <div class="comment_text">'. $row['comment'] .'</div>
      </div>';
  }
  $comments .= '</div>';
?>

Buka scripts dan copy code dibawah

$(document).ready(function(){
  // save comment to database
  $(document).on('click', '#submit_btn', function(){
    var name = $('#name').val();
    var comment = $('#comment').val();
    $.ajax({
      url: 'server.php',
      type: 'POST',
      data: {
        'save': 1,
        'name': name,
        'comment': comment,
      },
      success: function(response){
        $('#name').val('');
        $('#comment').val('');
        $('#display_area').append(response);
      }
    });
  });
  // delete from database
  $(document).on('click', '.delete', function(){
  var id = $(this).data('id');
  $clicked_btn = $(this);
  $.ajax({
    url: 'server.php',
    type: 'GET',
    data: {
    'delete': 1,
    'id': id,
      },
      success: function(response){
        // remove the deleted comment
        $clicked_btn.parent().remove();
        $('#name').val('');
        $('#comment').val('');
      }
  });
  });
  var edit_id;
  var $edit_comment;
  $(document).on('click', '.edit', function(){
  edit_id = $(this).data('id');
  $edit_comment = $(this).parent();
  // grab the comment to be editted
  var name = $(this).siblings('.display_name').text();
  var comment = $(this).siblings('.comment_text').text();
  // place comment in form
  $('#name').val(name);
  $('#comment').val(comment);
  $('#submit_btn').hide();
  $('#update_btn').show();
  });
  $(document).on('click', '#update_btn', function(){
  var id = edit_id;
  var name = $('#name').val();
  var comment = $('#comment').val();
  $.ajax({
      url: 'server.php',
      type: 'POST',
      data: {
      'update': 1,
      'id': id,
      'name': name,
      'comment': comment,
      },
      success: function(response){
      $('#name').val('');
      $('#comment').val('');
      $('#submit_btn').show();
      $('#update_btn').hide();
      $edit_comment.replaceWith(response);
      }
  });
  });
});


Buka styles dan copycode di bawah

.wrapper {
  width: 45%;
  height: auto;
  margin: 10px auto;
  border: 1px solid #cbcbcb;
  background: white;
}
/*
* COMMENT FORM
**/
.comment_form {
  width: 80%;
  margin: 100px auto;
  border: 1px solid green;
  background: #fafcfc;
  padding: 20px;
}
.comment_form label {
  display: block;
  margin: 5px 0px 5px 0px;
}
.comment_form input, textarea {
  padding: 5px;
  width: 95%;
}
#submit_btn, #update_btn {
  padding: 8px 15px;
  color: white;
  background: #339;
  border: none;
  border-radius: 4px;
  margin-top: 10px;
}
#update_btn {
  background: #1c7600;
}
/*
* COMMENT DISPLAY AREA
**/
#display_area {
  width: 90%;
  padding-top: 15px;
  margin: 10px auto;
}
.comment_box {
  cursor: default;
  margin: 5px;
  border: 1px solid #cbcbcb;
  padding: 5px 10px;
  position: relative;
}
.delete {
  position: absolute;
  top: 0px;
  right: 3px;
  color: red;
  display: none;
  cursor: pointer;
}
.edit {
  position: absolute;
  top: 0px;
  right: 45px;
  color: green;
  display: none;
  cursor: pointer;
}
.comment_box:hover .edit, .comment_box:hover .delete {
  display: block;
}
.comment_text {
  text-align: justify;
}
.display_name {
  color: blue;
  padding: 0px;
  margin: 0px 0px 5px 0px;
}


Jika semua sudah puka http://localhost/Ajax_php_CRUD/
Maka akan seperti ini

Untuk C (Create): yang berarti membuat sebuah data baru



R (Read): Membaca atau menampilkan suatu data yang tadinya berada didatabase 



U (Update): merubah atau edit data yang sudah di Read





D (Delete):hapus data



untuk lengkap nya bisa download di sini https://drive.google.com/drive/u/0/my-drive











Featured Post

Mengetahui tentang tag-tag HTML5

STRUKTUR HTML  HTML5 adalah versi terbaru dari HTML yang statusnya sudah direkomendasikan oleh W3C walau belum 100% sempurna, tapi beb...