Membuat AJAX form submit dengan jQuery

// February 27th, 2010 // 33 Comments // Life

jQuery merupakan framework javascript yang memudahkan developer dalam membuat aplikasinya. Seperti dalam contoh berikut akan saya jelaskan cara membuat form submit secara AJAX dengan menggunakan jQuery hanya dalam beberapa baris kode.

AJAX form ini bersifat unobstructive, sehingga jika tidak ada javascript di browser pengguna, form akan tetap bisa tersimpan.

Yang diperlukan

Anda sudah memiliki sebuah script html form dan sebuah handler dari form, sebut saja namanya proses.php

<form action="proses.php" method="post"> id="ajax_form"
	<div>
		Nama:
	</div>
	<div>
		<input type="text" name="nama"/>
	</div>
	<br style="clear:both;"/>

	<div>
		Jenis Kelamin:
	</div>
	<div>
		<input type="radio" name="gender" value="pria"/> Pria
		<input type="radio" name="gender" value="wanita"/> Wanita
	</div>
	<br style="clear:both;"/>

	<div>
		Pekerjaan:
	</div>
	<div>
		<select name="pekerjaan">
			<option value="pelajar">Pelajar</option>
			<option value="pns">PNS</option>
			<option value="Swasta">Swasta</option>
		</select>
	</div>
	<br style="clear:both;"/>

	<div>
		Komentar:
	</div>
	<div>
		<textarea name="komentar"></textarea>
	</div>
	<br style="clear:both;"/>

	<div>
		<input type="submit" value="Kirim"/>
	</div>

</form>

Form ini sudah jalan normal, hanya saja, anda ingin membuatnya menjadi AJAXMisalnya anda sudah punya form post biasa, yang akan diproses oleh script php proses.php

Membuat form jQuery AJAX

Pertama yang dilakukan, anda harus meng-include kan file jQuery di dalam document anda

<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>

Disini saya menggunakan file jQuery dari google repository. Anda dapat mendownloadnya dan meletakkannya di folder kerja anda, pastikan pathnya tepat.

Yang kedua, anda harus memasukkan script enkapsulasi berikut. Script berikut akan menjalankan script jQuery pada saat document ready

jQuery(function($){
     // kode disini
})

Ketiga, masukkan script berikut ini ke script enkapsulasi diatas

$("#ajax_form").submit( function() {
	var post_data = $(this).serialize();
	var form_action = $(this).attr("action");
	var form_method = $(this).attr("method");
	$.ajax( {
		type :form_method,
		url :form_action,
		cache :false,
		data :post_data,
		success : function() {
			alert("Data berhasil dimasukkan.");
		},
		error : function() {
			alert("Data gagal dimasukkan.");
		}
	});
	return false;
});

Saya akan menjelaskan per bagian:

$("#ajax_form").submit( function() {

Menandakan fungsi yang dijalankan saat element dengan id ajax_form (dalam hal ini berarti form) pada saat submit, perhatikan saya memberi id=”ajax_form” pada form html diatas. Untuk penjelasan tentang selector lainnya anda dapat pelajari disini

var post_data = $(this).serialize();

Ini adalah bagian yang saya suka, fungsi ini akan mempopulate semua form input value ke dalam Name Value Pair (NVP), yang nantinya akan di kirim melalui proses AJAX

var form_action = $(this).attr("action");
var form_method = $(this).attr("method");

Variable ini menandakan form action dan form method yang digunakan

$.ajax( { ... } )

Bagian ini kayaknya cukup self explaining.

Demo

33 Responses to “Membuat AJAX form submit dengan jQuery”

  1. Irawan says:

    wah saya belum coba pake jquery, biasanya pake php ama html biasa… makasih infonya…

  2. sauskecap says:

    waduh… saya nyasar disini, daripada ga ninggalin jejak mending numpang komentar…

  3. Pake jQuery yah….gw biasanya pake html biasa…..thx infonya…

  4. hmm. . . . . .
    walaupun masih sedikit bingung, tapi ada pertanyaan nih…
    itu editing kodenya harus pake applikasi lagi?

  5. SEO Fighter says:

    notepad juga bisa ya. .
    thanks dah, .

  6. captbbx says:

    kayaknya saya mesti perlu banyak belajar…

  7. voroxxx says:

    wahh… masi harus banyak belajar nih saya.. :P

  8. oleh says:

    bedanya apa pake ajax ma ga?

  9. hanifilham says:

    jquery sebagai pelengkap, hehe, masih menggunakan PHP

  10. sicofante says:

    salam kenal mas, ini artikel yang saya cari-cari mas. kebetulan nemu di sini. wah maturnuwun sanget atas tips dan pencerahan JQuery ini. langsung praktek ah….

  11. sorry nih gan mau nanya lagi. . .
    cara buat loading page model java script itu gmn caranya ya??
    jadi kalo pas submit komentar itu gak perlu loading page lagi gitu. . .

    *moga aja agan ngerti ya. . . :(

  12. wah keren dan ribet nih.. huahahau :lol: btw thx yaa

  13. RETNO says:

    thanks bgettttttttttttttttttttttt.buat info_y….tpi masih ribet praktekn_y.

  14. Makasih ya buat kode nya. terus terang saya msh bingung untuk menerapkan cara ini. tp ini sangat berguna mas :)

  15. bigmumet says:

    keren keren saya mau coba belajar

  16. husni says:

    Nice info gan!

  17. ajax selalu menarik dengan fitur-fitunya yang selalu nge flashh

  18. makasi banyak infonya mas, tapi saya blum terlalu mengerti dengan j query,,
    semoga dengan tutorialnya ini saya bisa lebih paham ^_^

  19. Pejwan Gugel says:

    Makasih ya buat kode nya. terus terang saya msh bingung untuk menerapkan cara ini. tp ini sangat berguna mas

Leave a Reply