Kalau sebelumnya saya sudah menulis tentang cara menampilkan halaman menggunakan Ajax (menggunakan fungsi load()
pada jQuery), maka kali ini adalah contoh penggunaan Ajax untuk
mengirimkan data dalam sebuah form dan memprosesnya. Salah satu
kelebihan menggunakan form berbasis Ajax dibandingkan form konvensional
adalah: kita tidak perlu meninggalkan form selama form
dikirimkan/diproses.
Untuk contoh ini, saya menggunakan dua buah file, yang pertama adalah
file ajaxform.html untuk menampilkan form nya, dan file proses.php
untuk memproses data yang dikirimkan dan menampilkan hasilnya.
Script pada file ajaxform.html nya adalah sbb:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | $(document).ready(function() { $().ajaxStart(function() { $('#loading').show(); $('#result').hide(); }).ajaxStop(function() { $('#loading').hide(); $('#result').fadeIn('slow'); }); $('#myForm').submit(function() { $.ajax({ type: 'POST', url: $(this).attr('action'), data: $(this).serialize(), success: function(data) { $('#result').html(data); } }) return false; }); }) |
ajax ()
pada jQuery. Fungsi ini memiliki sebuah argumen yaitu berupa object
(pasangan key/value), dan yang akan saya gunakan di antaranya sbb:type
: jenis request yang dipakai, bisa ‘POST’ atau ‘GET’url
: url yang akan digunakan untuk memproses data. karena pada form sudah terdapat nilai action (proses.php) maka saya tinggal mengambil nilai dari action tsb menggunakan$(this).attr('action')
data
: data yang dikirimkan, dalam format querystring. untuk menghasilkan querystring dari form, saya menggunakan fungsiserialize()
success
: fungsi yang akan dijalankan jika request berhasil, dengan sebuah argumen berupa data yang dikembalikan dari server, dalam hal ini adalah hasil output dari file proses.php (hasil output ini akan saya tampilkan ke dalam sebuahdiv
denganid="result"
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <?php //validasi if (trim($_POST['nim']) == '') { $error[] = '- NIM harus diisi'; } if (trim($_POST['nama']) == '') { $error[] = '- Nama harus diisi'; } if (trim($_POST['tempat_lahir']) == '') { $error[] = '- Tempat Lahir harus diisi'; } //dan seterusnya if (isset($error)) { echo '<b>Error</b>: <br />'.implode('<br />', $error); } else { /* jika data mau dimasukkan ke database, maka perintah SQL INSERT bisa ditulis di sini */ $data = ''; foreach ($_POST as $k => $v) { $data .= "$k : $v<br />"; } echo '<b>Form berhasil disubmit. Berikut ini data anda:</b>'; echo '<br />'; echo $data; } die(); ?> |
div
yang berada pada file ajaxform.htmlUntuk lebih jelasnya silakan lihat demo:
Demo Ajax Form
Dan anda bisa mendownload source code nya di sini:
0 comments:
Posting Komentar