Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / Mudahnya Memvalidasi Input Periode Tanggal di Aplikasi Web dari PHPMaker
Mudahnya Membatasi Akses ke Record Tertentu di Aplikasi Web dari PHPMaker
Mudahnya Membatasi Hanya 1 Record di Halaman List Aplikasi Web dari PHPMaker

Mudahnya Memvalidasi Input Periode Tanggal di Aplikasi Web dari PHPMaker

Rab, 12 November 2014 oleh Masino Sinaga 25 Komentar

Sebagai Web Developer, Anda pasti pernah dihadapkan dengan business-logic yang memvalidasi input data periode Tanggal dari Pengguna Aplikasi Web harus memenuhi syarat periode Tanggal tertentu. Artinya, jika data periode Tanggal yang dimasukkan Pengguna tidak berada di dalam/antara periode Tanggal tertentu, maka sistem harus menolaknya, lalu menampilkan pesan bahwa data tidak valid. Jadi, data tersebut tidak boleh masuk ke Database.

Katakanlah sistem sudah menentukan periode Tanggal yang valid atau memenuhi syarat adalah mulai 1 Januari 2014 sampai dengan 31 Januari 2014. Ketika Pengguna berusaha memasukkan Tanggal 1 Februari 2014 sampai dengan 7 Februari 2014, maka sistem harus menolaknya dengan menampilkan pesan bahwa periode tanggal yang valid harus di dalam/antara 1 Januari 2014 sampai dengan 31 Januari 2014. Lalu, jika misalnya Pengguna memasukkan tanggal 1 Januari 2014 sampai dengan (misalnya) 10 Januari 2014, maka sistem dapat menerimanya karena di antara 1 sampai 31 Januari 2014.

Jika Anda membangun Aplikasi Web dengan menggunakan PHPMaker, maka hal ini bisa diimplementasikan dengan sangat mudah, cepat, sekaligus menyenangkan. Mengapa? Karena Anda sebagai Web Developer cukup hanya menambahkan sedikit kode saja ke bagian Server Events. Anda hanya perlu menulis kode PHP yang berisi fungsi global untuk memvalidasi input Tanggal, dan juga saat Pengguna sedang memasukkan data.

Lebih tepatnya lagi, Anda dapat menggunakan dua buah server event berikut. Yang pertama di bagian Global Code, dan yang kedua di bagian Row_Inserting dari tabel terkait.

Ini kode PHP yang perlu Anda tempatkan di bagian Global Code:

function CheckDateBetween($sDateCheckBegin, $sDateCheckEnd, $sDateBegin, $sDateEnd) {
	$dDate1 = strtotime($sDateCheckBegin);
	$dDate2 = strtotime($sDateCheckEnd);
	if ( ($dDate1 >= strtotime($sDateBegin)) && ($dDate2 <= strtotime($sDateEnd)) ) {
		return TRUE;    
	} else {
		return FALSE;    
	}  
}

Perhatikan kode di atas. Fungsi untuk memvalidasi input Tanggal tersebut bernama CheckDateBetween dan memiliki 4 parameter. Parameter pertama merupakan input Tanggal Awal dari Pengguna, parameter kedua merupakan input Tanggal Akhir dari Pengguna, parameter ketiga merupakan data Tanggal Awal acuan, dan terakhir parameter keempat merupakan data Tanggal Akhir acuan.

Untuk menggunakan fungsi validasi tersebut, maka Anda sebagai Web Developer cukup hanya memanggil function tersebut dari server event Row_Inserting, yang kode selengkapnya seperti ini:

// Row Inserting event
function Row_Inserting($rsold, &$rsnew) {
	// Enter your code here
	// To cancel, set return value to FALSE
	$sDateBegin = "2014/01/01";
	$sDateEnd = "2014/01/31";
	if (CheckDateBetween($rsnew["Begin_Date"], $rsnew["End_Date"], $sDateBegin, $sDateEnd)==FALSE) {
		$this->setFailureMessage("Periode tanggal tidak di antara <strong>".$sDateBegin."</strong> dan <strong>".$sDateEnd."</strong>. Silahkan perbaiki!");
		return FALSE;
	}
	return TRUE;
}

Jika hasil pemanggilan function mengembalikan nilai FALSE, maka sistem akan menampilkan pesan yang memberitahukan Pengguna bahwa periode Tanggal yang diinput tidak valid karena tidak berada di dalam periode Tanggal yang dipersyaratkan. Dalam contoh di atas, kita mengasumsikan bahwa di tabel tersebut memiliki field masing-masing bernama Begin_Date dan End_Date. Kedua nilai field inilah yang akan diperiksa dan dibandingkan dengan periode Tanggal acuan di atas.

Pola seperti ini tentu saja bisa Anda terapkan untuk business-logic yang mirip-mirip dengan itu, karena PHPMaker sudah menyediakan kerangka kerja yang akan menuntun Web Developer dalam menaruh kodenya. Jika Anda ingin supaya function tersebut dapat diakses dari manapun di bagian Aplikasi Web Anda, maka cukup taruh di bagian Global Code. Setelah itu, Anda bisa menggunakannya dari server event terkait yang sesuai dengan kebutuhan Anda.

Luar biasa memang kemampuan dan fleksibilitas yang diberikan oleh PHPMaker kepada Web Developer. Anda hanya cukup menulis beberapa baris kode saja untuk mengimplementasikan business-logic tersebut. Selebihnya untuk hal-hal yang bersifat teknis, serahkan kepada PHPMaker untuk men-generate-nya. Bayangkan juga jika seandainya Anda harus mengimplementasikan hal ini secara manual menggunakan metode pengembangan yang bersifat konvensional, maka Anda harus menangani hal-hal teknis yang seharusnya tidak perlu lagi dilakukan oleh Web Developer

Sebagai Web Developer, tentu saja Anda tidak akan pernah mendapatkan keuntungan yang sangat besar ini jika tidak menggunakan PHPMaker dalam membangun Aplikasi Web Anda! Masih bertahan dengan cara-cara konvensional dalam membangun Aplikasi Web? Atau sudahkah Anda beralih menggunakan PHPMaker? 😀

Ditempatkan di bawah: PHPMaker Ditag dengan:Global Code, PHPMaker Indonesia, Row_Inserting, Server Events, Tutorial PHPMaker, Validate

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.

Mudahnya Membatasi Akses ke Record Tertentu di Aplikasi Web dari PHPMaker
Mudahnya Membatasi Hanya 1 Record di Halaman List Aplikasi Web dari PHPMaker

Komentar

  1. Bagus mengatakan

    Sen, 15 Desember 2014 pada 10:54 am

    Bang Masino, bgaimana caranya membuat Custom View dengan Filter tgl per hari ?
    (misal saya sudah pnya filed tanggal)

    Balas
    • Bagus mengatakan

      Sen, 15 Desember 2014 pada 11:00 am

      misal akan membuat menu ” Penjualan Hari ini”

      Balas
      • Masino Sinaga mengatakan

        Kam, 9 Juli 2015 pada 3:25 pm

        Gunakan fitur Extended Quick Search. Baca menu Help PHPMaker untuk informasi lebih lanjut.

        Balas
  2. hendra mengatakan

    Kam, 9 Juli 2015 pada 3:07 pm

    Saya ingin format d/m/Y, berikut coding saya (saya buat hanya 3 parameter saja)
    Apa yg salah dg coding saya, kok selalu ditolak.
    Padahal tanggal sdh saya masukkan pada range begin dan end

    function CheckDateBetween($sDateCkeck,$sDateBegin,$sDateEnd)
    {
    	$dDate1 = $sDateBegin;
    	$dDate2 = $sDateEnd;
    	if (($sDateCkeck>=$dDate1) && ($sDateCkecksetFailureMessage("DITOLAK . ".$DateCheck." Periode tanggal kirim HARUS antara <strong>".$dDate1."</strong> dan <strong>".$dDate2."</strong>. Silahkan perbaiki!");
    		return FALSE;
    }
    
    Balas
    • hendra mengatakan

      Kam, 9 Juli 2015 pada 3:08 pm

      Row_Inserting berisi:

      $dDate1 = date("d/m/Y",strtotime("+1 DAYS"));
      $dDate2 = date("d/m/Y",strtotime("+30 DAYS"));
      $DateCheck= date("d/m/Y",strtotime($rsnew["dDeliveryDate"]));   // ini sdh saya masukkan antara date1 & date2 
      if (CheckDateBetween($DateCheck,$dDate1,$dDate2)==FALSE)
      {
      	$this->setFailureMessage("DITOLAK . ".$DateCheck." Periode tanggal kirim HARUS antara <strong>".$dDate1."</strong> dan <strong>".$dDate2."</strong>. Silahkan perbaiki!");
      	return FALSE;
      }
      
      Balas
    • Masino Sinaga mengatakan

      Kam, 9 Juli 2015 pada 3:24 pm

      Function CheckDateBetween tidak perlu ada memunculkan pesan di dalamnya. Biarkan apa adanya seperti logik pada artikel saya di atas.

      Kalau Anda hanya memeriksa satu tanggal saja di antara dua tanggal, maka function CheckDateBetween di atas yang perlu Anda hapus hanya parameter $sDateCheckEnd.

      Balas
      • hendra mengatakan

        Kam, 9 Juli 2015 pada 3:30 pm

        o iya, itu saya nulisnya salah, kok ada pesannya ya. Yang benar sudah spt ini:

        $dDate1 = $sDateBegin;
        $dDate2 = $sDateEnd;
        if (($sDateCkeck>=$dDate1) && ($sDateCkeck<=$dDate2))
        {
        	return TRUE;    
        } else {
        	return FALSE;    
        }
        
        Balas
        • hendra mengatakan

          Kam, 9 Juli 2015 pada 3:48 pm

          itu saya cek , nampaknya format harus Y/m/d
          Karena saat menggunakan d/m/Y, maka $dDate2 jika beda bulan, jika saya cek dengan
          strtotime($dDate2), nilainya akan < strtotime($sDateCkeck).

          Tapi jika format nya Y/m/d , maka dia benar

          Balas
          • Masino Sinaga mengatakan

            Kam, 9 Juli 2015 pada 3:53 pm

            Iya, untuk keperluan perhitungan, sebaiknya dikonversi dulu ke format Y/m/d.

            Balas
            • hendra mengatakan

              Jum, 10 Juli 2015 pada 8:17 am

              thx 4 support

              Balas
              • Masino Sinaga mengatakan

                Jum, 10 Juli 2015 pada 9:19 am

                You’re welcome.

                Balas
  3. endah mengatakan

    Jum, 10 Juli 2015 pada 3:20 pm

    tanya, saya coba membuat dengan 4 bahasa, bhs indonesia-inggris-arab-jepang, tapi huruf arabnya beda2 ya hasil tampilannya. apa karena didalam komputer/phpmakernya tidak support font2 yang dibutuhkan? file zip bahasa sudah didapat/download, tapi untuk setiap field/title setelah dimasukkan translatenya tidak sama huruf/fontnya. bagaimana caranya? terimakasih

    Balas
    • Masino Sinaga mengatakan

      Sab, 11 Juli 2015 pada 12:27 am

      Pastikan Anda sudah mengaktifkan (beri tanda centang) pengaturan UTF-8 output files melalui menu Tools -> Advanced Settings.

      Pastikan juga Database yang Anda pakai support/mendukung penggunaan charset utf-8.

      Balas
  4. endah mengatakan

    Rab, 15 Juli 2015 pada 8:17 am

    tanya, saya agak bingung dengan koneksi use lookup table. kenapa setiap menggunakan link lookup table yg di formnya fieldnya saya ingin pakai text tidak bisa tampil data dari lookup table, setelah saya ganti menjadi combobox baru keluar tampilan data dari lookup table.
    misalnya saya ingin lookup table nama user yg login saat itu di halaman form hadir misalnya, saya gunakan text di edit tag formnya tapi tidak langsung keluar nama usernya, tapi setelah ganti edit tag combobox baru keluar nama user, tapi ya itu user harus harus klik “silahkan pilih” setelah pilih baru kelihatan, itu kenapa ya pak? terimakasih

    Balas
    • Masino Sinaga mengatakan

      Rab, 15 Juli 2015 pada 10:51 am

      Pastikan Anda sudah mengaktifkan item Force selection dari panel Edit Tag.

      Untuk info lebih lanjut, silahkan baca artikel ini: Nikmatnya Auto-Suggest di Aplikasi Web yang Dihasilkan oleh PHPMaker.

      Balas
  5. aries mengatakan

    Sel, 16 Februari 2016 pada 2:53 pm

    Pak Masino Sinaga,

    Bagaimana jika kebalikan dari yg diatas BUKAN menu INPUT. Melainkan EDIT data.

    Jadi hanya bisa EDIT data pada tgl saat itu juga, tgl berikut USER tdk dapat melakukan EDIT data.

    Terima kasih

    Balas
    • Masino Sinaga mengatakan

      Sel, 16 Februari 2016 pada 7:55 pm

      Gunakan server event Row_Updating. Baca topik Server Events and Client Scripts dari menu Help PHPMaker.

      Balas
  6. hendra mengatakan

    Jum, 5 Mei 2017 pada 10:59 am

    Bagaimana membuat validasi agar tanggal yang dimasukkan tidak boleh pada minggu ini.
    Hanya boleh pilih tanggal minggu depan, lusa, dst
    Terima kasih

    Balas
    • Masino Sinaga mengatakan

      Jum, 5 Mei 2017 pada 11:14 am

      Mirip dengan logic yang sudah dibahas pada artikel Mencegah Pengguna Memilih Tanggal yang Sudah Lewat di JSCalendar dari PHPMaker.

      Silahkan modifikasi sesuai kebutuhan Anda.

      Balas
      • hendra mengatakan

        Jum, 5 Mei 2017 pada 11:30 am

        terima kasih banyak, coba saya pelajari

        Balas
        • Masino Sinaga mengatakan

          Rab, 10 Mei 2017 pada 10:09 pm

          Sama-sama.

          Balas
  7. yoga buana mengatakan

    Rab, 25 April 2018 pada 10:27 am

    pak masino, mohon maaf tanya, kalau PHPmaker 2018 saya coba masukan di global code dan di row_inserting kok tidak muncul ya?

    Balas
    • Masino Sinaga mengatakan

      Rab, 2 Mei 2018 pada 10:05 pm

      Pastikan Anda sudah men-generate ulang semua file script.

      Balas
  8. Syauki mengatakan

    Rab, 9 Januari 2019 pada 8:54 am

    Bang, gimana sih caranya buat bikin inputan yang di input cuma 1 minggu sekali. misalnya nginput harga mingguan.

    Balas
    • Masino Sinaga mengatakan

      Kam, 10 Januari 2019 pada 11:47 am

      Lha, tinggal dibikin saja, iya toh? Susahnya dimana coba? Hm….

      Balas

Tinggalkan Balasan ke hendra 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

  • Masino Extensions untuk PHPMaker 2024 Sudah Dirilis, Silahkan Download!
  • Fitur-Fitur Masino Extensions untuk PHPMaker 2024
  • Review PHPMaker 2024
  • Mudahnya Mengunci Record dengan Javascript Count Down di PHPMaker 2023
  • Ini Alasan Kenapa Kalian Harus Beralih ke PHP 8

Menu

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

Komentar Terbaru

  • Masino Extensions untuk PHPMaker 2024 Sudah Dirilis, Silahkan Download! – Masino Sinaga pada Fitur-Fitur Masino Extensions untuk PHPMaker 2024
  • Fitur-Fitur Masino Extensions untuk PHPMaker 2024 – Masino Sinaga pada Custom Domain URL di Masino Extensions untuk PHPMaker 2020
  • Fitur-Fitur Masino Extensions untuk PHPMaker 2024 – Masino Sinaga pada Membatasi Akses Versi Live dan Versi Development Aplikasi Web dari PHPMaker
  • Fitur-Fitur Masino Extensions untuk PHPMaker 2024 – Masino Sinaga pada Nomor Urut Record di Export Data pada PHPMaker 2020 dan PHPMaker 2021
  • Masino Sinaga pada Review PHPMaker 2024

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 - 2023 | WordPress | Catat masuk | Kembali ke atas