Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / Mudahnya Menentukan Field Mandatory pada Kriteria Pencarian dari PHPMaker
Mudahnya Memperbarui Total Detail di Tabel Master di Aplikasi Web dari PHPMaker
Mudahnya Mengelola Data yang Melibatkan Lebih Satu Table Melalui PHPMaker

Mudahnya Menentukan Field Mandatory pada Kriteria Pencarian dari PHPMaker

Sel, 25 November 2014 oleh Masino Sinaga 18 Komentar

Mungkin banyak yang mengira bahwa kedua Field Mandatory Pencarian (Field yang wajib diinput datanya sebelum melakukan pencarian) di halaman yang satu ini datanya merupakan teks bebas. Padahal, sebenarnya kedua Field tersebut aslinya merupakan Field yang Lookup masing-masing ke tabel Propinsi dan Kabupaten.

Tentu saja hal ini sangat mudah diimplementasikan pada Aplikasi Web yang dihasilkan oleh PHPMaker, seperti yang sudah pernah saya bahas melalui artikel ini.

PHPMaker memiliki kemampuan yang sangat dahsyat sekaligus dengan fleksibilitas yang sangat tinggi untuk mengubah Lookup Field menjadi TextBox melalui fitur Extended Search yang terdapat di dalam panel Pencarian Cepat (Basic Search) maupun Pencarian Lanjutan (Advanced Search).

Selain itu, kedua Field Propinsi dan Kabupaten pada contoh kasus di atas dapat dijadikan sebagai Field Mandatory untuk melakukan pencarian data. Artinya, di kedua Field tersebut harus diinput terlebih dulu datanya sebelum melakukan pencarian.

Apabila kedua Field atau salah satu di antara Field tersebut tidak diinput datanya lalu Pengguna tetap melakukan pencarian data dengan mengklik tombol Cari, maka sistem akan menampilkan pesan yang memberitahukan bahwa kedua Field harus diisi terlebih dulu. Seketika itu juga proses pencarian akan dibatalkan oleh sistem.

Tidak hanya itu saja, kita pun dapat menentukan jumlah minimal karakter yang boleh dimasukkan pada kedua Field tadi.

PHPMaker memberikan kesempatan kepada Web Developer untuk membuat Field Mandatory Pencarian seperti itu. Dari contoh kasus di atas tadi, maka kita sebagai Web Developer cukup hanya menambahkan sedikit kode PHP berikut pada server event Form_CustomValidate yang terdapat di bawah lokasi berikut: Server Events -> Table-Specific -> List Page:

// Form Custom Validate event
function Form_CustomValidate(&$CustomError) {
	// Return error message in CustomError
	// Jika Propinsi dan/atau Kabupaten belum ditentukan
	if ($this->Propinsi->AdvancedSearch->SearchValue == "" && !$this->Propinsi->AdvancedSearch->IssetSession() && isset($_GET["cmd"])) {
		$CustomError = "Propinsi belum ditentukan.";
		return FALSE;
	} elseif ($this->Kabupaten->AdvancedSearch->SearchValue == "" && !$this->Kabupaten->AdvancedSearch->IssetSession() && isset($_GET["cmd"])) {
		$CustomError = "Kabupaten belum ditentukan.";  
		return FALSE;
	} 
	// Jika Propinsi dan/atau Kabupaten tidak ditentukan setelah sebelumnya pencarian pernah dilakukan
	if ($this->Propinsi->AdvancedSearch->SearchValue == "" && isset($_GET["cmd"])) {
		$CustomError = "Propinsi belum ditentukan.";
		return FALSE;
	} elseif ($this->Kabupaten->AdvancedSearch->SearchValue == "" && isset($_GET["cmd"])) {
		$CustomError = "Kabupaten belum ditentukan.";  
		return FALSE;
	}
	// Jika kata kunci Propinsi kurang dari 4 karakter
	if ( (strlen(trim($this->Propinsi->AdvancedSearch->SearchValue)) > 0) && (strlen(trim($this->Propinsi->AdvancedSearch->SearchValue)) < 4) ) {
		$CustomError = "Kata kunci Propinsi minimal 4 karakter.";
		return FALSE;
	}
	// Jika kata kunci Kabupaten kurang dari 3 karakter
	if ( (strlen(trim($this->Kabupaten->AdvancedSearch->SearchValue)) > 0) && (strlen(trim($this->Kabupaten->AdvancedSearch->SearchValue)) < 3) ) {
		$CustomError = "Kata kunci Kabupaten minimal 3 karakter";
		return FALSE;
	}
	
	return TRUE;
}

Perhatikanlah kode tersebut. Kita dapat menangani jika Field Propinsi dan/atau Kabupaten belum diisi, maka proses pencarian tidak dapat dilanjutkan. Demikian juga dengan kata kunci di Field Propinsi dan Kabupaten, masing-masing dapat kita tentukan jumlah minimal karakter-nya. Jika tidak memenuhi syarat, maka kita cukup mengisi variabel $CustomError dengan pesan error yang kita inginkan, lalu mengembalikan nilai FALSE untuk membatalkan proses pencarian.

Seperti namanya, server event Form_CustomValidate sangat cocok digunakan untuk validasi kriteria pencarian sebelum proses pencarian dilakukan. Betapa PHPMaker sudah menyediakan kerangka kerja yang demikian rapi, powerful, sekaligus fleksibel.

Wow, keren sekali PHPMaker, bukan? 😀

Ditempatkan di bawah: PHPMaker Ditag dengan:Form_CustomValidate, PHPMaker Indonesia, 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.

Mudahnya Memperbarui Total Detail di Tabel Master di Aplikasi Web dari PHPMaker
Mudahnya Mengelola Data yang Melibatkan Lebih Satu Table Melalui PHPMaker

Komentar

  1. Charly mengatakan

    Sel, 8 November 2022 pada 6:11 am

    Mat Pagi Pak Masino…
    Mohon bantuannya, saya ingin mengambil nilai terpilih SELECT hasil dari pencairan untuk dijadikan nilai ForeignKey ke ke Link yang ini saya tuju, saya sudah coba-coba dengan Kode di bawah ini tapi tidak berhasil, mohon Pencerahannya Pak Masino…Makasih

    // Page Render event
    function Page_Render()
    {
    $this->OtherOptions[“addedit”]->UseDropDownButton = FALSE; // jangan gunakan style DropDownButton
    $my_options = &$this->OtherOptions; // pastikan menggunakan area OtherOptions
    $my_option = $my_options[“addedit”]; // dekat tombol addedit
    $my_item = &$my_option->Add(“mynewbutton”); // tambahkan tombol baru
    $my_item->Body = “Cetak“;
    }

    Balas
    • Charly mengatakan

      Sel, 8 November 2022 pada 6:12 am

      “$my_item->Body = “Cetak“;”

      Balas
      • Charly mengatakan

        Sel, 8 November 2022 pada 6:13 am

        Maaf link nya gak jadi
        href=\”” . HtmlEncode(“rptcetaklapprogrespekerjaan?” . Config(“TABLE_SHOW_MASTER”) . “=v_101_menu_lap_progres_pekerjaan&” . GetForeignKeyUrl(“fk_KdBulan”, get(“x_KdBulan”)) . “”) . “\”

        Balas
        • Charly mengatakan

          Sel, 8 November 2022 pada 6:13 am

          Kurang lebih seperti ini Pak Masino, mohon bantuannya

          Balas
    • Masino Sinaga mengatakan

      Sel, 8 November 2022 pada 7:53 am

      Pakai PHPMaker versi berapa?

      Balas
      • Charly mengatakan

        Sel, 8 November 2022 pada 6:35 pm

        PHPMaker 2021 Pak Masino

        Balas
        • Masino Sinaga mengatakan

          Rab, 9 November 2022 pada 7:39 am

          Oke, pertanyaan selanjutnya: tidak bisanya itu seperti apa kondisinya? Apakah ada pesan error atau output yang muncul misalnya seperti apa?

          Balas
          • Charly mengatakan

            Ming, 13 November 2022 pada 12:02 pm

            Siang Pak Masino, maaf baru bales atas tanggapan Pak Masino.

            untuk pesan errornya tidak ada, tetapi output nya tidak muncul loading terus tanpa ada tampilan outputnya.

            Dalam hal ini, yang saya inginkan menambahkan tombol diluar dari ListTable untuk tombol cetak, dan tombol cetak akan menampilan hasil pilihan Bulan dari SELECT, jika SELECT nya saya pilih Januari maka KdBulan berisi nilai 01 dan seterusnya dan akan meanpilan halaman REPORT. Permasalahanya get(“x_KdBulan”) nilainya tidak bisa berubah sesuai dengan pilihan bulan pada SELECT
            Mohon bantuannya Pak Masino, Makasih…salam

            Balas
            • Masino Sinaga mengatakan

              Ming, 13 November 2022 pada 4:55 pm

              Coba tekan tombol F12 di browser, lalu cek apakah ada error Javascript dari panel Console.

              Balas
              • Charly mengatakan

                Ming, 13 November 2022 pada 8:20 pm

                Maaf Pak Masino, apakah ini errornya

                DevTools failed to load source map: Could not load content for chrome-extension://fheoggkfdfchfphceeifdbepaooicaho/sourceMap/chrome/scripts/iframe_form_detection.map: System error: net::ERR_BLOCKED_BY_CLI

                Balas
                • Masino Sinaga mengatakan

                  Ming, 13 November 2022 pada 8:31 pm

                  Coba kalau pakai browser yang lain, apakah ada Javascript error setelah tekan F12?

  2. Dani mengatakan

    Sel, 8 November 2022 pada 12:21 pm

    Pak Masino saya bertanya di luar context yang sedang dibahas, kenapa phpmaker ini mendapat nilai yang kurang bagus di gtmatrix di bagian *render-blocking resources* apakah phpmaker tidak menghendle hal tersebut yang membuat aplikasi sangat lambat jika di akses ratusan orang secara bersamaan

    Balas
    • Masino Sinaga mengatakan

      Sel, 8 November 2022 pada 1:39 pm

      Karena kode Javascript yang digunakan aplikasi web akan dimuat secara asynchronously. Artinya, Pengguna harus menunggu terlebih dulu sampai jQuery dimuat, barulah kode Javascript tadi dijalankan.

      Balas
    • Masino Sinaga mengatakan

      Sel, 8 November 2022 pada 1:43 pm

      Sebenarnya tidak ada kaitannya antara render-blocking resources dengan aplikasi sangat lambat jika diakses ratusan orang secara bersamaan.

      Proses render itu terjadi di sisi browser si client, bukan di sisi server. Jadi, tidak ada kaitan di antara keduanya.

      Aplikasi lambat itu ada banyak faktor yang menyebabkan. Bisa karena spec server-nya yang tidak bagus, bisa juga karena jaringan/network yang tidak bagus.

      Balas
      • Dani mengatakan

        Sel, 8 November 2022 pada 3:24 pm

        Terima Kasih banyak pak atas balasan yang sangat mendetail menjadikan saya berfikir ulang tentang aplikasi yang saya buat.

        Balas
        • Masino Sinaga mengatakan

          Sel, 8 November 2022 pada 4:54 pm

          Sama-sama mas.

          Barusan saya menulis artikel terkait:
          Mengapa PHPMaker Memuat Kode Javasript dan CSS secara Asynchronous?.

          Balas
    • Masino Sinaga mengatakan

      Sel, 8 November 2022 pada 1:57 pm

      Ini ada artikel bagus mengenai Perbedaan antara Synchronous dan Asynchronous di Javascript.

      PHPMaker pasti punya pertimbangan tersendiri, mengapa mereka memutuskan untuk menjalankan kode Javascript (termasuk juga kode Stylesheet) secara asynchronous.

      Balas
      • Masino Sinaga mengatakan

        Sel, 8 November 2022 pada 1:59 pm

        Seperti yang dijelaskan juga pada artikel ini:
        Async & Defer — How to Load JavaScript Properly.

        Balas

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

  • Mudahnya Mengubah Nilai Delay Auto Hide Success Message di PHPMaker 2025
  • Mudahnya Berpindah Layout dari Table ke Cards di Halaman List lewat PHPMaker 2025
  • Jangan Lupa Pakai AdjustSql Saat Insert atau Update Data Lewat ExecuteStatement
  • File-File yang Wajib Diperhatikan Setelah Menambah Item User Values di PHPMaker 2025
  • Begini Cara Memuat Tables dari Database Secara Dinamis di PHPMaker 2025

Menu

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

Komentar Terbaru

  • Masino Sinaga pada Mudahnya Menyesuaikan Timezone di Calendar Report pada PHPMaker 2023
  • Nano pada Mudahnya Menyesuaikan Timezone di Calendar Report pada PHPMaker 2023
  • Charly pada Mudahnya Menyembunyikan Tombol Master/Detail di Halaman View pada PHPMaker 2023
  • Charly pada Mudahnya Menyembunyikan Tombol Master/Detail di Halaman View pada PHPMaker 2023
  • Masino Sinaga pada Mudahnya Menyembunyikan Tombol Master/Detail di Halaman View pada PHPMaker 2023

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