Chatbox adalah fitur yang cukup penting di website berbasis sosial media. Nah, kali ini saya akan memberikan tutorial dasar untuk membuat chatbox ini. Langsung saja, Aplikasi ini terdapat 2 file:
- Index.php (UI dari Aplikasi)
- proses.php (file untuk memproses data)
Dan untuk membuat aplikasi ini dibutuhkan :
- PHP 5.4
- MySQL
- Notepad++
- jQuery 2.1.4
LANGKAH PERTAMA: Membuat Database
Database ini kita beri nama latihan dan memiliki fungsi untuk menyimpan data-data yang user masukan.
lalu buat tabel dengan struktur sebagai berikut:
CREATE TABLE `ajax` ( `name` varchar(12), `massage` text, `datetime` Date )
LANGKAH KEDUA: Membuat file index.php
Seperti dijelaskan diatas tadi file ini berfungsi sebagai user interface dari aplikasi dan juga proses AJAX terjadi di sini.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Aplikasi Chatting</title> <script src="libs/jquery-2.1.4.min.js"></script> <style> .box{ width: 400px; background: #BDBDBD; padding: 10px; } .content{ padding: 0; height: 350px; overflow: hidden; background: #FFF; } .content li{ font-size: 12px; list-style: none; } .content li .date{ text-align: right; } .form{ margin: 20px 20px 20px 20px; } </style> </head> <body> <div class="box"> <ul class='content'> </ul> <div class="form"> <input type="text" id="name"> <input type="text" id="massage"> <input type="submit" id="send" value="Send"> </div> </div> </body> <script> $(document).ready(function(){ function show(){ $.ajax({ type: "POST", url: "proses.php", data: "action=show", success: function(data){ $('.content').html(data); } }); }; setInterval(function(){ show(); },1000); $("#send").click(function(){ var name = $("#name").val(); var massage = $("#massage").val(); $.ajax({ type: "POST", url: "proses.php", data: "action=insert&nama="+name+"&pesan="+massage, success: function(data){ show(); } }); $("#name").val(""); $("#massage").val(""); }); }); </script> </html>
Langsung bahas saja skrip JavaScript:
-
function show(){ $.ajax({ type: "POST", url: "proses.php", data: "action=show", success: function(data){ $('.content').html(data); } }); };
Skrip diatas adalah untuk membuat function yang berisi proses AJAX yang mengirim data action yang memiliki value show.
data ini berfungsi untuk pemrosesan nantinya.
-
setInterval(function(){ show(); },1000);
File ini berfungsi untuk merefresh halaman setiap detik agar aplikasi lebih responsif.
-
$("#send").click(function(){ var name = $("#name").val(); var massage = $("#massage").val(); $.ajax({ type: "POST", url: "proses.php", data: "action=insert&nama="+name+"&pesan="+massage, success: function(data){ show(); } }); $("#name").val(""); $("#massage").val(""); });
Skrip diatas juga terdapat proses AJAX yang mengirim data action yang memiliki value insert dan mengirim data dari value form input dari aplikasi.
LANGKAH KETIGA: Membuat file proses.php
File ini berfungsi sebagai pemrosesan data dari index.php ke database dan sebaliknya.
<?php if(isset($_POST['action'])){ $db = new PDO('mysql:host=localhost;dbname=latihan','root','mysql'); $action = $_POST['action']; if($action == "show"){ $sql = "SELECT * FROM ajax"; $query = $db->query($sql); while($res = $query->fetch(PDO::FETCH_OBJ)){ echo "<li><p class='pesan'>".$res->name." : ".$res->massage."</p><p class='date'>$res->datetime</p></li>"; } } elseif($action == "insert"){ $d = date('Y-m-d'); $sql = "INSERT INTO ajax(name,massage,datetime) VALUES('$_POST[nama]','$_POST[pesan]','$d')"; $query = $db->query($sql); } } ?>
Penjelasan:
-
if(isset($_POST['action'])){
File hanya akan belajar jika $_POST['action'] telah diset
-
$db = new PDO('mysql:host=localhost;dbname=latihan','root','mysql');
Membuat koneksi dengan teknik PDO.
-
if($action == "show"){ $sql = "SELECT * FROM ajax"; $query = $db->query($sql); while($res = $query->fetch(PDO::FETCH_OBJ)){ echo "<li><p class='pesan'>".$res->name." : ".$res->massage."</p><p class='date'>$res->datetime</p></li>";
Ini adalah skripp untuk melakukan interaksi dengan database untuk menampilkan data di index.php
-
elseif($action == "insert"){ $d = date('Y-m-d'); $sql = "INSERT INTO ajax(name,massage,datetime) VALUES('$_POST[nama]','$_POST[pesan]','$d')"; $query = $db->query($sql); }
Ini adalah skrip untuk melakukan inserting data ke database.
Oke sekian Tutorial kali ini. Aplikasi ini sangat sederhana. Dan masih dapat dikembangkan dengan hal-hal menarik. Tinggal sejauh mana kreatifitas kalian.