logo
  • Home
  • Pemrograman
    • Website
      • PHP
      • MySQL
      • Ajax
      • CSS
      • JavaScript
      • HTML
    • Framework
      • Laravel
      • Lumen
      • Yii2
  • Sistem Operasi
    • Linux
    • Android
    • Windows
  • Kehidupan
    • Cinta
    • Ga Jelas
  • Home
  • Pemrograman
    • Website
      • PHP
      • MySQL
      • Ajax
      • CSS
      • JavaScript
      • HTML
    • Framework
      • Laravel
      • Lumen
      • Yii2
  • Sistem Operasi
    • Linux
    • Android
    • Windows
  • Kehidupan
    • Cinta
    • Ga Jelas

Simple Ajax Form Auto Submit

27 May 2011 by Nasrul Hadi 2 Comments

Ini, posting tutorial pertama saya di blog baru ini, kali ini membahas tentang proses pengiriman data otomatis  tanpa kita harus repot  mengklik tombol submit.  pemahaman yg kita butuhkan adalah sedikit mengerti tentang ajax, dimana dalam hal ini ajax berperan penting dalam lalu lintas proses pengiriman data.

pengetahuan tentang :

  • HTML
  • PHP
  • MySql
  • Javascript / Ajax

Langsung saja ke topik. pertama, kita buat database db_autosubmit dulu.

CREATE TABLE IF NOT EXISTS `db_autosubmit` (
`id` int(11) NOT NULL auto_increment,
`nama` varchar(20) NOT NULL,
`email` varchar(20) NOT NULL,
`hobi` varchar(30) NOT NULL,
`pid` varchar(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;

Setelah itu, buat file dengan nama form.html dan masukan kode javascript ini

<script language="javascript">
	function GetData(){
		var input = document.getElementById("FormAutoSubmit").elements
		var param = "";

		// menghitung semua jumlah element pada form, kecuali type submit
		for(var i=0; i!=input.length; i++){
			if(input[i].type != "submit"){
				param = param+"&"+input[i].name+"="+input[i].value
			}
		}

		// proses ajax dimulai
		var get=new XMLHttpRequest();
		// mengirimkan request value ke SendData.php melalu method POST
		get.open("POST", "SendData.php", true);
		// mengambil nilai header untuk proses pengiriman request data
		get.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		get.setRequestHeader("Content-length", param.length);
		get.setRequestHeader("Connection", "close");
		get.send(param);
		// menunggu hasil pengembalian request data
		get.onreadystatechange = function() {
			if(get.readyState == 4 && get.status == 200){
				//notifikasi menandakan jika nilai kembali / respon post bernilai benar, misal:
				//alert("berhasil Input Data");
			}
		}
	}
</script>

Script diatas, adalah untuk lalu lintas proses data. dimana, di dalam fungsi GetData() variabel input  mencari semua element input yg berada di form FormAutoSubmit dan mendeklarasikan kemudian menjumlah total mengunakan fungsi for(var i=0; i!=input.length; i++) .  setelah mendapatkan value dari element-element tersebut, maka request data akan dikirimkan melalui XMLHttpRequest(); dan diteruskan ke file SendData.php untuk selanjutnya di proses ke database.

untuk form sendiri, harus diberikan tag ID berdasarkan  getElementById() .

<form id="FormAutoSubmit" method="post" onclick="GetData();" onkeyup="GetData();">
	<label>FORM AUTO SUBMIT</label><hr width="300" align="left" /><br />
    <label for="nama">Nama :</label> <input type="text" name="nama" id="nama" /><br /><br />
    <label for="email">Email :</label> <input type="text" name="email" id="email" /><br /><br />
    <label for="hobi">Hobi :</label> <input type="text" name="hobi" id="hobi" /><br /><br />
    <input type="hidden" name="pid" value="KODE" />
</form>

Pada script form di atas, terdapat input type=”hidden” fungsinya untuk acuan pemetakan agar tidak terjadi over flood saat proses insert ke database.  sekarang kita buat file SendData.php

<?php

$host 	= "localhost"; // nama server
$user 	= "root"; // mysql user
$pass 	= "root"; // mysql password
$db	= "test"; // mysql database
$table	= "db_autosubmit"; // nama table database

// menghubungkan ke database
mysql_connect($host, $user, $pass);
mysql_select_db($db);

// mengambil request value dari ajax
$nama 	= $_POST["nama"];
$email 	= $_POST["email"];
$hobi 	= $_POST['hobi'];
$pid	= $_POST['pid'];

// menghitung total baris pada database.
$total_baris = mysql_num_rows(mysql_query("SELECT * FROM ".$table." WHERE `pid` = '".$pid."'"));

// jika total baris lebih dari 0 (berarti ada) maka request data akan di update berdasarkan PID
if($total_baris > 0){
	mysql_query("UPDATE ".$table." SET `nama` = '".$nama."' , `email` = '".$email."' , `hobi` = '".$hobi."' WHERE `pid` = '".$pid."' ")
	or die ("mysql error: ".mysql_error());
	exit;

// jika total baris sama dengan 0, maka data akan di input menjadi baris baru
}else{
	mysql_query("INSERT INTO ".$table." VALUES (NULL, '$nama', '$email', '$hobi', '$pid')")
	or die ("mysql error: ".mysql_error());
	exit;
}

?>

Ok, Selamat mencoba. Semoga bermanfaat…

Download File : http://www.box.net/shared/l5paj7vasf


–

dari Meja Nasrul, 2011

Categories : Ajax, CSS, HTML, JavaScript, MySQL, PHP, Tutorial, Web Programming
Tags : ajax, autosubmit, css, form, html, mysql, php, simple ajax form auto submit
Nasrul Hadi

Sudah menikah, dan sekarang jadi bapak rumah tangga. Contact: nasrul[at]arekmedia.com

Related Post

Kirim Email Di Lumen 5.2 Menggunakan Mandrill

Kirim Email Di Lumen 5.2 Menggunakan Mandrill

09 Apr 2016
5 Plugin Wajib di WordPress

5 Plugin Wajib di WordPress

23 Oct 2015
JQuery: Menghitung Sisa Karakter

JQuery: Menghitung Sisa Karakter

01 Apr 2015

2 thoughts on “Simple Ajax Form Auto Submit”

  1. septic
    said on 27 March 2012

    i loved the article added to my favourites

    Reply
  2. VPS Server
    said on 21 April 2012

    Thank you very much for that splendid article

    Reply

Leave a Reply to VPS Server Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

latestwid-img

Cara cepat “Save All” di Sublime Text 3

6 May 2020
latestwid-img

Password default modem Huawei HG8245A Indihome terbaru 2020

4 May 2020
latestwid-img

Percayakan Server dan Domain Kamu pada Ahlinya

30 April 2020
latestwid-img

Cara menghubungkan folder sharing Windows 10 dengan VLC di Android TV

23 April 2020
latestwid-img

Modem Indihome Kena Hack!

15 May 2017

Recent Comments

  • mahasiswacode on Kirim Email Di Lumen 5.2 Menggunakan Mandrill
  • Firman on Modem Indihome Kena Hack!
  • anil on Modem Indihome Kena Hack!
  • philtyphils on Kirim Email Di Lumen 5.2 Menggunakan Mandrill
  • Muhamad Husein on SSL Gratis dari Let’s Encrypt!

Archives

  • May 2020
  • April 2020
  • May 2017
  • September 2016
  • April 2016
  • October 2015
  • May 2015
  • April 2015
  • December 2014
  • November 2014
  • October 2012
  • March 2012
  • July 2011
  • June 2011
  • May 2011
Dibuat untuk memberi manfaat ❤