Membuat Form Kontak yang Indah dan Atraktif dengan AJAX [Part 5]

Sekarang kita telah menyiapkan form bukannya di-submit dengan cara yang biasa, itu akan memicu fungsi submitForm () ketika pengunjung men-submit. Fungsi ini akan melakukan beberapa validasi dan, jika semuanya oke,maka akan mengirimkan data form ke skrip PHP melalui Ajax.

Berikut fungsi secara penuh:

// Submit the form via Ajax
 
functionsubmitForm() {
  varcontactForm = $(this);
 
  // Are all the fields filled in?
 
  if( !$('#senderName').val() || !$('#senderEmail').val() || !$('#message').val() ) {
 
    // No; display a warning message and return to the form
    $('#incompleteMessage').fadeIn().delay(messageDelay).fadeOut();
    contactForm.fadeOut().delay(messageDelay).fadeIn();
 
  } else{
 
    // Yes; submit the form to the PHP script via Ajax
 
    $('#sendingMessage').fadeIn();
    contactForm.fadeOut();
 
    $.ajax( {
      url: contactForm.attr( 'action') + "?ajax=true",
      type: contactForm.attr( 'method'),
      data: contactForm.serialize(),
      success: submitFinished
    } );
  }
 
  // Prevent the default form submission occurring
  returnfalse;
}

Berikut adalah fungsi kerjanya:

1. Simpan form kontak dalam variabel

Karena kita akan menggunakannya banyak seluruh fungsi, kita memulai dengan menyimpan kontak elemen bentuk dalam variabel ContactForm. Elemen ini tersedia untuk fungsi kita sebagai variabel, karena fungsi adalah event handler untuk menyerahkan kepada elemen. Kita bungkus elemen dalam objek jQuery untuk membuatnya bekerja.

2. Periksa semua field yang diisi

Sekarang kita periksa bahwa nilai masing-masing field yang tidak kosong dengan menggunakan metode jQueryval () pada setiap field.

3. Menampilkan peringatan jika field tidak selesai

Jika 1 atau lebih bidang kosong, kita memudar form, kemudian memudar di div #incompleteMessage, yang berisi ” Please complete all the fields…” pesan. Kita terus pesan di sana untuk waktu yang ditentukan oleh variabel messageDelay, kemudian memudar keluar lagi. Setelah itu memudar keluar, kita memudar bentuk kembali sehingga pengunjung dapat menyelesaikannya.

4. Men-submit form jika sudah selesai

Sekarang kita sampai ke inti dari JavaScript. Jika form selesai maka kita akan memudarkan form, “Sending Your Message …” kotak. Sekarang kita sebut metode jQuery ajax () untuk mengirimkan form melalui Ajax untuk script PHP.

 url

URL untuk mengirim form. Kita ambil ini dari action atribut form, dan menambahkan parameter ajax = true untuk string sehingga script PHP tahu kalau form dikirim melalui Ajax.

type

Jenis request untuk membuat (“POST” atau “GET”). Kita ambil ini dari atribut form’smethod, yang dalam hal ini diatur ke “POST”.

data

Data untuk mengirim request. Untuk ini, kita sebut jQuery serialize() metode pada objek form kontak. Metode ini mengambil semua nama dan nilai field dalam encode data dalam query string. Lalu saat string ini lulus dengan metode ajax () sehingga dapat mengirim data ke script PHP.

success

Ini adalah fungsi callback yang akan dipanggil sekali dari requestAjax dan browser telah menerima respon dari server. Kita atur ini untuk fungsi oursubmitFinished ()

5. Mencegah terjadi pen-submitan form default

Terakhir, event handler kita kembali ke false untuk mencegah form yang disubmit dengan cara yang biasa.

Fungsi terakhir yang akan kita tulis adalah submitFinished (), yang dipanggil sekali respon Ajax dari script PHP yang telah diterima oleh browser. Fungsi ini akan  memeriksa respon dan menampilkan success atau pesan error yang sesuai:

// Handle the Ajax response
 
functionsubmitFinished( response ) {
  response = $.trim( response );
  $('#sendingMessage').fadeOut();
 
  if( response == "success") {
 
    // Form submitted successfully:
    // 1. Display the success message
    // 2. Clear the form fields
    // 3. Fade the content back in
 
    $('#successMessage').fadeIn().delay(messageDelay).fadeOut();
    $('#senderName').val( "");
    $('#senderEmail').val( "");
    $('#message').val( "");
 
    $('#content').delay(messageDelay+500).fadeTo( 'slow', 1 );
 
  } else{
 
    // Form submission failed: Display the failure message,
    // then redisplay the form
    $('#failureMessage').fadeIn().delay(messageDelay).fadeOut();
    $('#contactForm').delay(messageDelay+500).fadeIn();
  }
}
 
</script>

Berikut penjelasan dari fungsi tersebut:

1. Dapatkan respon

jQuery melewati respon dari script PHP sebagai argumen untuk fungsi  thesubmitFinished (). Kita mengambil string dan menyebarkannya melalui metode  jQuery trim () untuk menghilangkan spasi apapun.

2. Fade out “Sending” pesan

Selanjutnya kita meblur keluar kotak “Mengirim pesan Anda …” kotak dengan memanggil metode jQueryfadeOut ().

3. Jika email telah berhasil dikirim, menampilkan pesan sukses

Jika variabel respon memegang string success“, seperti yang dikembalikan oleh skrip PHP, maka kita tahu bahwa email itu berhasil antri dikirim. Jadi kita memudar pesan sukses, tahan selama beberapa detik, kemudian memudar keluar (fade out). Kita juga me-reset kolom form untuk nilai yang kosong, dalam hal pengunjung ingin mengirim pesan lain. Terakhir, setelah pesan sukses telah memudar, kita tampilkan halaman konten kembali.

4. Jika ada masalah, menampilkan pesan gagal

Jika script PHP kembali selain “sukses” maka kita tahu ada masalah dengan sumbit, jadi kitatampilkan pesan error yang disimpan dalam div #failureMessage, lalu memudar bentuk kembali sehingga pengunjung dapat memperbaikierror pada  form.

Kita sekarang telah membuat form kontak yang indah dan atraktif dengan . Tidak hanya terlihat bagus, tapi mudah digunakan, dan pengunjung dapat mengirim email tanpa harus meninggalkan halaman yang mereka baca.

Sampai disini dulu tutorial kita, sampai jumpa di tutorial selanjutnya, selamat mencoba, Let’s Coding Together J

sumber : jagocoding

Share This:Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInPin on Pinterest

Leave a Reply

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