Minggu, 16 November 2014

Menyimpan Data ke database dengan Ajax


Sebelum mengikuti langkah-langkah berikut, sebaiknya anda pelajari dulu materi tentang database dan ajax. Di sini saya hanya memaparkan langkah-langkahnya saja. Sebelum masuk ke coding, sebaiknya anda pastikan bahwa anda memiliki tabel database seperti berikut :




Setelah tabel database di atas dibuat, berikut nya membuat form  kontak dengan membuka halaman kerja .php baru lalu ketik script sperti di bawah ini :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Telepon Kami</title>
</head>

<body>
<form id="form1" name="form1" action="simpan.php" method="post">
<fieldset>
<legend><strong> Hubungi Kami</strong></legend>
<div id="content" style="width:300px" align="center">
<label> Nama        : <input name="nama" type="text" id="nama" maxlength="50"/> </label>
<p> <label> Alamat  : <input name="alamat" type="text" id="alamat" maxlength="50"/></label></p>
<p> <label> E-mail  : <input name="email" type="text" id="email" maxlength="50"/></label></p>
<p> <label> Telepon : <input name="telepon" type="text" id="telepon" maxlength="50"/></label></p>
<p> <label> Pesan   : <textarea name="pesan" id="pesan"></textarea> </label> </p>
<p><script type="text/javascript" src="ajax.js"></script>
<input type="button" name="button" value="save" onclick="sendData('simpan.php','content'); return false;"/>
<input type="reset" name="reset" value="Cancel"/></p>
</div>
</fieldset>
</form>
</body>
</html>


Script diatas saya simpan dengan nama 1.php, apabila sudah di simpan dan dijalankan di web browser akan tampil seperti gambar berikut :


Langkah selanjutnya adalah membuat javascript dan membuat function untuk menyimpan data ke database. Buat dokumen baru dan letik script berikut :
function getXMLHttpRequest(){
if(window.ActiveXObject){
      return new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
      return new XMLHttpRequest();
}else alert("Status : Can not create XMLHttpRequest Object");
}

var xmlhttp=getXMLHttpRequest();
function sendData(handlePage,ElementID){
var nama=document.getElementById('nama').value;
var alamat=document.getElementById('alamat').value;
var email=document.getElementById('email').value;
var telepon=document.getElementById('telepon').value;
var pesan=document.getElementById('pesan').value;
var filterEmail=/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
var filterPhone=/^[0-9]+$/;
//validate user input
if(nama==""){
      alert("Masukkan Nama terlebih dahulu!");
}else if(alamat==""){
      alert("Masukkan Alamat Anda!");
}else if(email==""){
     alert("Masukkan E-mail Anda!");
}else if(!filterEmail.test(email)){
      alert("E-mail Tidak Valid");
}else if(telepon==""){
      alert("Masukkan Nomor Telepon Anda!");
}else if(!filterPhone.test(phone)){
      alert("Kesalahan Nomor Telepon!");
}else if(pesan==""){
      alert("Mohon masukkan Pesan Anda!");
}else{
//data valid
if(xmlhttp.readyState==4 || xmlhttp.readyState==0){
      var obj=document.getElementById(ElementID);
      var form=obj.innerHTML;
      obj.innerHTML='Saving data, please wait..';
      xmlhttp.open('POST',handlePage,true);
      xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
      xmlhttp.onreadystatechange=function(){
      if(xmlhttp.readyState==4){
      if(xmlhttp.status==200){
      obj.innerHTML=xmlhttp.responseText+'<br>'+form;
      }else{
      alert('Error : '+xmlhttp.statusText);
      }
      }
}
var param='nama='+nama;
param+='&alamat='+alamat;
param+='&email='+email;
param+='&telepon='+telepon;
param+='&pesan='+pesan;
param+='&action=save';
xmlhttp.send(param);
}

}

}

Kemudian simpan text script di atas dengan nama ajax.js (contoh) file ini harus dijadikan satu atau 1 folder dengan file 1.php.

Setelah selsai dengan langkah-langkah di atas, silahkan buat dokumen baru lagi. Sekarang kita akan buat dokumen yang digunakan untuk menyimpan data yang diinputkan ke dalam database. Berikut script yang dapat diketik :
<?php
$conn=mysql_connect("localhost","root","");
mysql_select_db('data');
if($_POST['action']=='save'){
//validasi data
 $nama=$_POST['nama'];
 $alamat=$_POST['alamat'];
 $email=$_POST['email'];
 $telepon=$_POST['telepon'];
 $pesan=$_POST['pesan'];
 settype($nama,'string');
 settype($alamat,'string');
 settype($pesan,'string');
//validasi email;
 if(!preg_match('/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/',$email)){
 echo 'E-mail Adress tidak Valid'; exit();
 }
 //validasi phone
 if(!preg_match('/^[0-9]+$/',$telepon)){
 echo 'Telepon tidak Valid'; exit();
 }
 //saving data
 $query="INSERT INTO kontak (nama,alamat,email,telepon,pesan) VALUES ('$nama','$alamat','$email','$telepon','$pesan')";
 $hasil=@mysql_query($query);
 if($hasil){
 echo '<font color="green">DATA Tersimpan</font>';
 }else {
 echo '<font color="red">Error</font>';
 }
}
?>
</body>
</html>

Setelah selsai, anda dapat menyimpan dokumen dengan nama simpan.php di direktori yang sama dengan file 1.php dan ajax.js

0 komentar :

Posting Komentar