Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / Memastikan Tanggal Awal Tidak Boleh Lebih Besar dari Tanggal Akhir dari PHPMaker
Lebih Lanjut Tentang Session Timeout di PHPMaker
Mudahnya Menampilkan Selisih 2 Tanggal dengan Custom Fields dari PHPMaker

Memastikan Tanggal Awal Tidak Boleh Lebih Besar dari Tanggal Akhir dari PHPMaker

Sel, 3 November 2015 oleh Masino Sinaga 6 Komentar

Permasalahan klasik yang paling sering dialami oleh Web Developer adalah melakukan validasi input data Tanggal. Khususnya, jika data yang diinput terdiri dari Tanggal Awal dan Tanggal Akhir. Bagaimana cara memastikan supaya Tanggal Awal yang diinput tidak boleh lebih besar dari Tanggal Akhir.

Percaya atau tidak, jika Anda membangun Aplikasi Web dengan menggunakan PHPMaker, hal ini dapat dilakukan dengan sangat mudah. Katakanlah kedua data tersebut diwakilkan oleh dua field berikut yang masing-masing bernama Tanggal_Awal dan Tanggal_Akhir. Tentu saja tipe kedua field haruslah DateTime.

Anda cukup hanya menaruh 4 baris kode PHP saja ke dalam server event Row_Inserting yang terdapat di bawah lokasi Server Events -> Table-Specific -> Common, sehingga kode selengkapnya kira-kira menjadi seperti ini:

// Row Inserting event
function Row_Inserting($rsold, &$rsnew) {
	// Enter your code here
	// To cancel, set return value to FALSE
	if (strtotime($rsnew["Tanggal_Awal"]) > strtotime($rsnew["Tanggal_Akhir"])) {
		$this->setFailureMessage("Tanggal Awal harus lebih kecil atau sama dengan Tanggal Akhir.");    
		return FALSE;
	}
	return TRUE;
}

Dari kode tersebut, maka kita cukup hanya mengkonversi nilai masing-masing Tanggal tadi menggunakan function strtotime(), lalu membandingkan nilai keduanya. Jika tidak memenuhi syarat, maka tampilkan pesan kesalahan kepada Pengguna, dan seketika itu juga proses penambahan data dibatalkan oleh sistem; yang ditandai dengan pengembalian nilai FALSE.

Dengan kode yang sama itu pula, maka kita dapat memvalidasi data kedua Tanggal tadi pada saat Pengguna mengubah data Tanggal. Cukup salin empat baris kode di atas ke dalam server event Row_Updating.

Itu jika validasi terjadi di sisi server menggunakan kode PHP. Lalu timbul pertanyaan, bagaimana jika validasinya dilakukan di sisi browser juga. Gampang! Cukup tambahkan kode ini di bagian Form_CustomValidate yang terdapat di bawah lokasi Client Scripts -> Table-Specific -> Add/Copy Page, sehingga kode selengkapnya kira-kira menjadi seperti ini:

 function(fobj) { // DO NOT CHANGE THIS LINE!
	// Your custom validation code here, return false if invalid.
	elmTglAwal = this.GetElements("x_Tanggal_Awal");
	f1 = $("#x_Tanggal_Awal").val();
	f2 = $("#x_Tanggal_Akhir").val();
	if(f1 > f2){
		return this.OnError(elmTglAwal, "Maaf tanggal awal harus lebih kecil atau sama dengan tanggal akhir");
	} 
 	return true;
 }

Pertanyaannya sekarang, bisakah di Aplikasi Web yang Anda bangun tanpa bantuan PHPMaker menggunakan cara seperti itu? Kita cukup hanya menulis sedikit kode itu saja, dan selebihnya akan ditangani oleh PHPMaker. Kita tidak perlu lagi menulis kode untuk menampilkan elemen-elemen di form tersebut.

Dengan menggunakan PHPMaker, maka Web Developer tidak lagi disibukkan mengurusi hal-hal yang bersifat sangat teknis. Web Developer menjadi dapat lebih fokus berkonsentrasi dalam mengimplementasikan business-logic dan business-process ke Aplikasi Web.

Betapa mudah, cepat, dan menyenangkan sekali, bukan? 🙂

Ditempatkan di bawah: PHPMaker Ditag dengan:Belajar PHPMaker, Client Scripts, DateTime, Form_CustomValidate, PHPMaker Indonesia, Row_Inserting, Row_Updating, Server Events, Tutorial PHPMaker

Masino Sinaga

Web Developer pengguna PHPMaker untuk membangun Aplikasi Web sejak tahun 2004. Sampai sekarang masih aktif dan rajin membagikan pengalamannya menggunakan PHPMaker melalui situs masinosinaga.com, ilovephpmaker.com, dan phpmakerprojects.com.

Lebih Lanjut Tentang Session Timeout di PHPMaker
Mudahnya Menampilkan Selisih 2 Tanggal dengan Custom Fields dari PHPMaker

Komentar

  1. Cak Sobri mengatakan

    Rab, 4 November 2015 pada 3:52 pm

    Bukannya tanpa strtotime() bisa ya om?

    $rsnew[“Tanggal_Awal”] > $rsnew[“Tanggal_Akhir”]

    apa perbedaannya?

    Balas
    • Masino Sinaga mengatakan

      Rab, 4 November 2015 pada 4:10 pm

      Supaya lebih aman aja pakai strtotime().

      Balas
  2. Roiman Panjaitan mengatakan

    Jum, 11 Desember 2015 pada 3:01 am

    Asli bang… lo baik banget… Gue doain lo makin banyak rejeki… Maju teruss bang Masino!! 😀

    Balas
    • Masino Sinaga mengatakan

      Jum, 11 Desember 2015 pada 10:16 am

      Amiiin… Makasih ya… 🙂

      Balas
  3. randy mengatakan

    Kam, 27 Oktober 2016 pada 11:56 am

    kalo pake pake javascript bisa gak bang, jadi pada saat kita input tanggal akhir ada alertnya bahwa tanggal nya salah, bukan pada saat di proses?

    Balas
    • Masino Sinaga mengatakan

      Sel, 1 November 2016 pada 10:27 am

      Bisa. Mirip dengan artikel ini: Menghitung Selisih Hari dari Dua Buah Tanggal dengan Javascript dari PHPMaker.

      Silahkan Anda modifikasi kode pada artikel itu, intinya, Anda tinggal membandingkan saja antara tanggal awal dan tanggal akhir. Selamat mencoba!

      Balas

Tinggalkan Balasan ke Masino Sinaga Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses

Pos-pos Terbaru

  • Alasan 20 Harus Pakai Masino Extensions: Maximum Record per Page
  • Alasan 19 Harus Pakai Masino Extensions: Custom Breadcrumb Links
  • Alasan 18 Harus Pakai Masino Extensions: Improvement User Level Permissions
  • Alasan 17 Harus Pakai Masino Extensions: Dynamic Permission for Export Data
  • Alasan 16 Harus Pakai Masino Extensions: Confirm Before Save

Menu

  • Siapa Saya?
  • Web Development
  • PHPMaker
  • Umum
  • Syarat dan Ketentuan
  • Sitemap (Peta Situs)
  • Komentar

Komentar Terbaru

  • Demo Masino Extensions for PHPMaker 2026 – Masino Sinaga pada Fitur-Fitur Masino Extensions untuk PHPMaker 2024
  • Masino Sinaga pada Kode Javascript yang Berubah di PHPMaker 2026 dari PHPMaker 2025
  • Angg* pada Kode Javascript yang Berubah di PHPMaker 2026 dari PHPMaker 2025
  • Masino Sinaga pada Cara Menampilkan Tombol Close di Footer Modal buat Custom File yang SkipHeaderFooter-nya Bernilai True
  • Masino Sinaga pada Cara Menampilkan Tombol Close di Footer Modal buat Custom File yang SkipHeaderFooter-nya Bernilai True

Situs Terkait

  1. I Love PHPMaker
  2. Situs Resmi PHPMaker
  3. Forum Diskusi PHPMaker
  4. PHPMaker di IlmuKomputer.com
  5. PHPMaker Projects
  6. PHPMaker Learning

Baru di PHPMaker?

Baca ini terlebih dulu ...

  1. Ayo Menjadi Web Developer yang Cerdas!
  2. PHPMaker: PHP Code Generator + PHP Framework
  3. Pertanyaan-Pertanyaan yang Paling Sering Diajukan Seputar PHPMaker
  4. Tips buat Anda Pemula yang Baru Mengenal dan Menggunakan PHPMaker
  5. Bacalah Help, Bacalah Help, dan Bacalah Help di PHPMaker!

(c) Masino Sinaga 2009 - 2026 | WordPress | Catat masuk | Kembali ke atas