Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / Membuat Select2 Dapat Langsung Menerima Event Keypress di PHPMaker 2022
Project Stock Inventory untuk PHPMaker 2022 Sekarang Sudah Bisa Didownload
Betapa Nyamannya Sekarang Mengetik Kode di Code Editor PHPMaker 2022

Membuat Select2 Dapat Langsung Menerima Event Keypress di PHPMaker 2022

Sen, 22 November 2021 oleh Masino Sinaga 8 Komentar

Seperti yang sudah kita ketahui, sejak versi 2021, PHPMaker mulai menggunakan control Select2 menggantikan control Combobox yang biasa. Banyak keuntungan yang kita dapatkan setelah PHPMaker menggunakan Select2, seperti yang diuraikan pada website Select2 tadi.

Keuntungan yang sangat dirasakan oleh Pengguna Akhir adalah kemampuan mencari data dengan cara mengetik satu atau beberapa karakter di dalamnya. Jika sebelumnya kita menggunakan control Select atau Combobox biasa, maka fitur pencarian data dengan cara mengetik langsung di dalam control ini belum dapat dilakukan.

Sayangnya, jika control Select2 hanya dapat memilih satu pilihan (bukan multi-select), maka kita harus mengklik terlebih dulu control Select2 tadi untuk menampilkan area dropdown yang dilengkapi text untuk mengetik data yang akan dicari. Sementara untuk multi-select, maka control Select2 dapat langsung menerima input berupa event keypress tanpa harus menampilkan area dropown-nya terlebih dulu.

Pertanyaan selanjutnya, apakah kita bisa membuat supaya control Select2 yang bukan multi-select tadi dapat menerima input berupa event keypres tanpa menampilkan area dropdown-nya, sama seperti jika kita menggunakannya untuk multi-select? Jawabannya tentu saja bisa. Hehe, penasaran bagaimana caranya?

Ternyata mudah sekali. Langsung saja kita terapkan pada project demo2022 yang bisa Anda coba sendiri di localhost.

Buka project tersebut dengan PHPMaker 2022, lalu klik table orders dari panel Database di sebelah kiri. Selanjutnya klik field EmployeeID dari Fields setup, dan beri tanda centang pada kolom Ext. Search di bawah kolom List Page.

Berikutnya, klik tab Code (Server Events, Client Scripts and Custom Templates), lalu langsung lompat ke lokasi berikut: Client Scripts -> Table-Specific -> List Page -> Client Script, dan copy-kan kode berikut ke kode editor di sebelah kanan:

loadjs.ready("forderssrch", function() {
    // EmployeeID
    var optionsEmpID = { name: "x_EmployeeID", selectId: "forderssrch_x_EmployeeID" },
        elEI = document.querySelector("select[data-select2-id='" + optionsEmpID.selectId + "']");
    optionsEmpID.dropdownParent = elEI.closest("#ew-modal-dialog, #ew-add-opt-dialog");
    if (forderssrch.lists.EmployeeID.lookupOptions.length) {
        optionsEmpID.data = { id: "x_EmployeeID", form: "forderssrch" };
    } else {
        optionsEmpID.ajax = { id: "x_EmployeeID", form: "forderssrch", limit: ew.LOOKUP_PAGE_SIZE };
    }
    optionsEmpID.allowClear = true;
    optionsEmpID.multiple = true;
    optionsEmpID.maximumSelectionLength = 1;
    optionsEmpID = Object.assign({}, ew.selectOptions, optionsEmpID, ew.vars.tables.orders.fields.EmployeeID.selectOptions);
    ew.createSelect(optionsEmpID);
});

Setelah itu silahkan generate ulang semua file script dengan menggunakan PHPMaker 2022 seperti biasa, lalu cobalah login ke aplikasi web dengan username admin dan password master.

Buka menu OTHER TABLES -> Orders, lalu pastikan panel pencarian sudah terbuka (expanded).

Cobalah untuk membuat agar kursor mouse focus pada field Employee pada panel pencarian; bisa dengan klik field lain lalu pindahkan ke field Employee tadi, atau bisa juga langsung klik pada field Employee.

Perhatikanlah sekarang, kita dapat langsung mengetikkan satu atau beberapa karakter pada field Employee tadi. Karena field Employee ini hanya bisa memilih satu pilihan saja, maka ketika Anda ingin mencoba memilih pilihan yang lain, akan muncul tulisan bahwa Anda hanya dapat memilih satu item saja.

Mungkin ada yang bertanya, kok bisa? Kuncinya ada pada potongan kode berikut:

optionsEmpID.maximumSelectionLength = 1;

Cukup dengan meng-assign opsi maximumSelectionLength dengan nilai 1, yang artinya hanya boleh memilih satu pilihan saja.

Selain kode itu, cobalah perhatikan kode yang ini yang berada di atas kode tadi:

optionsEmpID.multiple = true;

Inilah kode penentu, mengapa akhirnya field Employee pada panel pencarian tadi bisa langsung menerima event keypress tanpa harus mengklik field tersebut terlebih dulu untuk menampilkan dropdown berisi textbox untuk mengetikkan pencarian sekaligus menampilkan hasilnya.

Betapa mudahnya bukan? Sedikit tricky memang, tapi benar-benar berfungsi.

Ditempatkan di bawah: PHPMaker Ditag dengan:Belajar PHPMaker, Client Scripts, Keypress, PHPMaker 2022, PHPMaker Indonesia, Select2, Startup Script, 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 dan ilovephpmaker.com.

Project Stock Inventory untuk PHPMaker 2022 Sekarang Sudah Bisa Didownload
Betapa Nyamannya Sekarang Mengetik Kode di Code Editor PHPMaker 2022

Komentar

  1. Pandanwangiii mengatakan

    Sen, 29 November 2021 pada 11:07 pm

    Selamat malam, Pak.
    Saya mau bertanya soal PHPMaker. Saya menggunakan PHPMaker 2021.
    Saya ada kasus seperti ini, Pak. Saya login sebagai role Staff, pada field tabel master ada 1 field bernama status (enum, N dan Y), jika nilai field status = N, saya bisa mengubah, menambahkan data pada detail tabel, tapi jika nilai field status = Y, maka saya tidak bisa lagi mengubah dan atau menambahkan data lagi. Saya harus pakai server event apa? Dan global function apa yg harus saya set, Pak? Terima kasih.

    Balas
    • Masino Sinaga mengatakan

      Sel, 30 November 2021 pada 6:59 am

      Selamat pagi.

      Anda bisa pakai server event Row_Selected milik table detail, untuk mencegah user mengubah atau menambah data.

      Di server event ini, cek nilai field status di table master tadi, dan jika bernilai Y dan id halamannya add atau edit, maka redirect ke halaman List.

      Balas
      • Pandanwangiii mengatakan

        Sel, 30 November 2021 pada 10:57 am

        $sql = ExecuteScalar(“SELECT `status` FROM project WHERE id_project = ‘”.$rs[“project_id”].”‘”);
        if(CurrentPageID() == “edit” && $sql == “Y”){
        var_dump($sql);
        $this->terminate(“projectlist”);
        }

        Hasil var_dump: string(1) “Y” string(1) “Y”

        Tapi ngga mau ngeredirect ke halaman list page, Pak. Apa yang salah, Pak?

        Balas
        • Masino Sinaga mengatakan

          Rab, 1 Desember 2021 pada 7:51 am

          Pastikan di server event Row_Selected milik table detail-nya, bukan di table master-nya.

          Balas
      • Pandanwangiii mengatakan

        Rab, 1 Desember 2021 pada 2:24 am

        Selamat malam, Pak. Sudah berhasil, Pak. Saya pake jQuery buat nyembunyiin tombol master/detail edit, nya. Agak beresiko memang, tapi berhubung deadlinenya makin mepet, semoga ngga ketahuan dosen pembimbing hahahahaha. Yang mau saya tanyakan lagi adalah saya mengaktifkan multiple detail table, di list page jadi ada tombol dropdown “Master/Detail”, cara hidenya gimana ya, Pak? Cara custom tombol addnya juga gimana, Pak? Terima kasih.

        Balas
        • Masino Sinaga mengatakan

          Rab, 1 Desember 2021 pada 7:52 am

          Pakai extension Preview atau tidak?

          Balas
          • Pandanwangiii mengatakan

            Rab, 1 Desember 2021 pada 1:55 pm

            Ya, pakai, Pak.

            Balas
            • Masino Sinaga mengatakan

              Rab, 1 Desember 2021 pada 6:51 pm

              Apakah sama dengan yang dibahas pada topik ini? –> Multiple Detail Table

              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 Menyembunyikan Tombol Master/Detail di Halaman View pada PHPMaker 2023
  • Menampilkan atau Menyembunyikan Field Berdasarkan Data di Field Lain pada PHPMaker 2023
  • File-File Apa Saja yang Harus Digenerate Setiap Kali Menambah Table Baru di PHPMaker 2023?
  • Begini Cara Mengganti Pesan Standar Error Duplicate Key di PHPMaker 2023
  • Mudahnya Menterjemahkan Field User Values di PHPMaker 2023

Menu

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

Komentar Terbaru

  • Masino Sinaga pada Menampilkan atau Menyembunyikan Field Berdasarkan Data di Field Lain pada PHPMaker 2023
  • Masino Sinaga pada Membuat Kode Otomatis Saat Data Ditambah di Aplikasi Web dari PHPMaker
  • Kupang pada Menampilkan atau Menyembunyikan Field Berdasarkan Data di Field Lain pada PHPMaker 2023
  • Murniyati pada Membuat Kode Otomatis Saat Data Ditambah di Aplikasi Web dari PHPMaker
  • Masino Sinaga pada Membuat Kode Otomatis Saat Data Ditambah di Aplikasi Web dari PHPMaker

Situs Terkait

  1. I Love PHPMaker
  2. Situs Resmi PHPMaker
  3. Forum Diskusi PHPMaker
  4. PHPMaker di IlmuKomputer.com
  5. 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 - 2021 | WordPress | Catat masuk | Kembali ke atas