Masino Sinaga

Web Development, PHPMaker, & PHP Report Maker

Anda di sini: Beranda / PHPMaker / Mudahnya Mengisi Data Otomatis ke Form Tambah di Aplikasi Web dari PHPMaker
Mudahnya Memindahkan Item Menu di Aplikasi Web dari PHPMaker
Mudahnya Mengubah Link Hapus di Halaman List Aplikasi Web dari PHPMaker

Mudahnya Mengisi Data Otomatis ke Form Tambah di Aplikasi Web dari PHPMaker

Maret 5, 2015 oleh Masino Sinaga 30 Komentar

Di artikel sebelumnya kita sudah membahas bagaimana mudahnya kita sebagai Web Developer mengubah link Hapus di setiap Record pada halaman List. Seperti janji saya di artikel tersebut, kali ini kita akan membahas bagaimana cara menangkap data yang berasal dari URL di link Hapus pada tabel barang, untuk selanjutnya terisi secara otomatis pada halaman atau form Tambah di tabel hapus_barang.

Sebagai informasi, untuk memudahkan Anda mengikuti ulasan di bawah ini, maka saya sertakan struktur tabel yang terkait seperti berikut:

-- ----------------------------
-- Table structure for barang
-- ----------------------------
DROP TABLE IF EXISTS `barang`;
CREATE TABLE `barang` (
  `Kode_Barang` char(3) NOT NULL,
  `Nama_Barang` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`Kode_Barang`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records of barang
-- ----------------------------
INSERT INTO `barang` VALUES ('001', 'Barang Pertama');
INSERT INTO `barang` VALUES ('002', 'Barang Kedua');
INSERT INTO `barang` VALUES ('003', 'Barang Ketiga');
INSERT INTO `barang` VALUES ('004', 'Barang Keempat');
INSERT INTO `barang` VALUES ('005', 'Barang Kelima');

-- ----------------------------
-- Table structure for hapus_barang
-- ----------------------------
DROP TABLE IF EXISTS `hapus_barang`;
CREATE TABLE `hapus_barang` (
  `ID_Hapus` int(5) NOT NULL AUTO_INCREMENT,
  `Kode_Barang` char(3) DEFAULT NULL,
  `Nama_Barang` varchar(20) DEFAULT NULL,
  `Keterangan` text,
  PRIMARY KEY (`ID_Hapus`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

Untuk mendapatkan data yang berasal dari parameter di URL, maka pertama kali kita cukup mengambil nilainya menggunakan $_GET. Tapi, supaya data tersebut tetap tersimpan sekalipun URL berikutnya sudah tidak menyertakan paramter Kode_Barang (misalnya jika sistem mengembalikan pesan validasi karena data masih kosong dan dalam hal ini parameter tidak disertakan lagi di URL), maka kita sebaiknya menyimpannya ke dalam variabel session.

Untuk itu, kita cukup menambahkan kode berikut ke dalam server event Page_Load yang terdapat di bawah Server Events -> Table-Specific -> Add/Copy Page, sehingga kode selengkapnya menjadi seperti ini:

// Page Load event
function Page_Load() {
	//echo "Page Load";
	if (isset($_GET["Kode_Barang"])) {
		$_SESSION["Kode_Barang"] = ew_RemoveHtml($_GET["Kode_Barang"]);
	}
}

Perhatikanlah kode tersebut. Kita menggunakan function ew_RemoveHtml untuk menghilangkan tag HTML dari parameter Kode_Barang (jika seandainya Pengguna nakal dengan menyisipkan tag HTML atau Javascript), sehingga dapat mencegah serangan XSS.

Langkah selanjutnya, kita akan menampilkan data di form Tambah dalam mode Read-Only. Untuk itu, kita cukup menambahkan kode berikut ke dalam server event Row_Rendered milik tabel hapus_barang, sehingga kode selengkapnya menjadi seperti ini:

// Row Rendered event
function Row_Rendered() {
	// To view properties of field class, use:
	//var_dump($this-><FieldName>);
	if (CurrentPageID() == "add") {
	 	$this->Kode_Barang->EditValue = $_SESSION["Kode_Barang"];
	 	$this->Nama_Barang->EditValue = ew_ExecuteScalar("SELECT Nama_Barang FROM barang WHERE Kode_Barang = '".$_SESSION["Kode_Barang"]."'");
	 	$this->Kode_Barang->ReadOnly = TRUE;
	 	$this->Nama_Barang->ReadOnly = TRUE;
	}
}

Setelah itu, kita juga harus menambahkan kode berikut masing-masing ke dalam server event Row_Inserting dan Row_Inserted milik tabel hapus_barang:

Ini untuk server event Row_Inserting:

// Row Inserting event
function Row_Inserting($rsold, &$rsnew) {
	// Enter your code here
	// To cancel, set return value to FALSE
	$rsnew["Kode_Barang"] = $_SESSION["Kode_Barang"];
	$rsnew["Nama_Barang"] = ew_ExecuteScalar("SELECT Nama_Barang FROM barang WHERE Kode_Barang = '".$_SESSION["Kode_Barang"]."'");	

	return TRUE;
}

Fungsi server event ini untuk memastikan bahwa data yang akan dimasukkan secara otomatis pada field Kode_Barang dan Nama_Barang sesuai dengan data yang terdapat pada link Hapus dari tabel barang.

Dan ini untuk server event Row_Inserted:

// Row Inserted event
function Row_Inserted($rsold, &$rsnew) {
	//echo "Row Inserted"
	ew_Execute("DELETE FROM barang WHERE Kode_Barang = '".$rsnew["Kode_Barang"]."'");
	$this->setSuccessMessage("Data berhasil dihapus dan tersimpan ke tabel log penghapusan");
}

Fungsi server event Row_Inserted untuk menghapus data di tabel barang, setelah data log penghapusan berhasil dimasukkan ke tabel hapus_barang. Kita bahkan bisa menampilkan pesan berhasil yang isinya kita tentukan sendiri, dengan cara memanggil method setSuccessMessage.

Wow, keren ya PHPMaker? 😀

Ditempatkan di bawah: PHPMaker Ditag dengan:Belajar PHPMaker, Page_Load, PHPMaker Indonesia, Row_Inserted, Row_Inserting, 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 dan ilovephpmaker.com.

Mudahnya Memindahkan Item Menu di Aplikasi Web dari PHPMaker
Mudahnya Mengubah Link Hapus di Halaman List Aplikasi Web dari PHPMaker

Comments

  1. Rijal mengatakan

    Maret 22, 2015 pada 11:09 am

    Pak Masino apakah memungkinkan untuk menampilkan sebuah objek misal ‘Teks’ yg berisi informasi di Halaman add (di bagian Tab 2), jadi sy sudah membuat halaman add yg terdapat 2 Tab ( Pengaturan di Table=>Multi Page)
    misal Tab 1 : berisi halaman input/ add
    Tab 2 : berisi Informasi/ langkah2 Input atau data ambil dari Database. (atau hanya teks biasa)
    ( utk Tab2 sdh saya siasati dg menampilkan sebuah field yg nantinya sy Hidden)

    sy sdh mempunyai gambaran berdasarkan artikel diatas, misal sperti ini :
    function Row_Rendered() {
    if (CurrentPageID() == “add” && *** $this->disini Jika halaman ‘Tab2’)*** {
    // di sini ditampilkan sebuah informasi / jika memungkinan bisa ambil dari database
    }
    }
    maksud logika diatas adalah : Jika yg Ditampilkan adalah Halaman Add dan ada Pada Bagian Tab 2.
    tp sy tidak tau bgaimana fungsi yg Tab2 tersebut, atau memang tidak ada fungsi untuk hal itu.
    apakah memungkinkan Pak untuk melakukan hal tersebut ?
    Trimakasih

    Balas
    • Masino Sinaga mengatakan

      Maret 23, 2015 pada 12:35 pm

      Tidak perlu lagi memeriksa ada di Tab 2. Anda cukup menggunakan server event Row_Rendered untuk memanipulasi nilai di sebuah field.

      Balas
  2. Rijal mengatakan

    Maret 29, 2015 pada 7:05 am

    ehmm… maksudnya bagaimana ya pak, kok saya belum paham,
    misalnya saya punya 3 field: NIM, Nama, Alamat.
    untuk NIM dan Nama saya taruh di ‘Tab1’ sedangkan untuk Alamat saya taruh di ‘Tab 2’ . (utk Alamat di taruh di Tab 2 tujuanya hanya utk menampilkan 2 Page / Tab)
    Nah, pada Tab 2 tersebut rencanaya akan saya tambahkan sebuah informsi atau misalnya List data Mahasiswa ( buatan sendiri pake PHP Manual) bukan Generate PHP MAKER,

    saya sudah coba ubah2 scara manual dari File hasil Generate, di bagian ini :

    // di bagian ini ditampilkan List (buatan sendiri) atau include(“tampil_mahasiswa.php”);

    kode tersebut sudah berjalan seperti yang di harapkan, namun kelemahannya adalah setiap kali Project PHP Maker, di Generate ulang maka harus merubah2 lagi File Scriptnya secara Manual.
    Nah, apakah memungkinkan Pak cara tersebut di buat dari project PHP Maker tanpa harus ngrubah2 File Script secara Manual… ?
    Trimakasih.

    Balas
    • Masino Sinaga mengatakan

      Maret 29, 2015 pada 10:19 am

      Kode seperti apa yang Anda ubah?

      Catatan: bungkus kode Anda dengan tag:

      [code lang="php"]
      
      // kode Anda di sini ...
      
      

      [/code]

      Balas
      • Rijal mengatakan

        April 7, 2015 pada 8:34 pm

         
        <div class="tab-pane" id="tab_page2">
        <div>
        
        // kode saya letakkan disini , 
        
        </div
        </div>
        
        

        cara diatas sdh berhasil , namun saya merubahnya melalui cara Manual yaitu dengan merubah file hasil Generate (bukan dari Project PHP Maker)
        kelemahannya adalah ketika di Generate ulang maka harus merubah file Script secara manual lagi.

        Balas
  3. hendra mengatakan

    Juli 31, 2015 pada 2:16 pm

    Isi row_rendered
    $this->Field1->EditValue= “001”
    $this->Field2->EditValue= “ABC”
    Saya mempunya table dg 2 field, field 1 KEY, kedua field varchar dan NOT null
    isi row_rendered hanya diatas, namun error pada FIELD2, dengan error
    “Creating default object from empty value in C:\xampp\htdocs\php11demo\XXinfo.php on line 836”

    Apa ya pak yang salah ?

    Balas
    • Masino Sinaga mengatakan

      Juli 31, 2015 pada 9:46 pm

      Apanya yang salah? Mau tahu apa yang salah? Pertama, info yang Anda sampaikan tidak jelas! Error itu terjadi pada saat apa? Halaman apa yang Anda sedang buka/tampilkan? Kedua, Anda tidak menjelaskan Field2 itu menggunakan control apa? TextBox, ComboBox, Radio Button, atau? Sudah tahu sekarang apa yang salah? 😛

      Balas
      • hendra mengatakan

        Agustus 1, 2015 pada 10:30 am

        terima kasih, solved

        Balas
  4. Faris mengatakan

    Desember 10, 2015 pada 7:29 pm

    Pak Masino. kalau untuk penambahan ke tabel hapus barang setelah add atau edit di tabel barang, kode script nya gmn pak?

    Balas
    • Masino Sinaga mengatakan

      Desember 11, 2015 pada 9:44 am

      Kok agak aneh ya. Kenapa harus ditambahkan ke tabel hapus barang setelah add atau edit. Itu kan sudah gak sesuai lagi fungsi dari tabel hapus barang tersebut. Masak setelah add atau edit nambah ke tabel hapus barang?

      Balas
  5. Faris mengatakan

    Desember 10, 2015 pada 9:52 pm

    Notice: Undefined index: Kode_Barang in C:\Xampp1\htdocs\aplikasi\hapus_baranginfo.php on line 897

    Notice: Undefined index: Kode_Barang in C:\Xampp1\htdocs\aplikasi\hapus_baranginfo.php on line 898

    Balas
    • Masino Sinaga mengatakan

      Desember 11, 2015 pada 9:45 am

      Apa kode yang terdapat di baris 897 dan 898 dari file hapus_baranginfo.php?

      Balas
  6. Faris mengatakan

    Desember 11, 2015 pada 11:16 am

    Maaf Pak Masino Pertanyaan yang membingungkan, maksud saya waktu add otomatis add ke tabel yang lain, skrg sdh solved pak dengan code ini,
    // Row Inserted event
    function Row_Inserted($rsold, &$rsnew) {
    //echo “Row Inserted”
    // Copy record
    // NOTE: Modify your SQL here, replace the table name, field name and the condition
    $rsnew = ew_Execute(“INSERT INTO hapus_barang (kode_barang, nama_barang) SELECT kode_barang, nama_barang FROM barang WHERE Kode_Barang = ‘”.$rsnew[“Kode_Barang”].”‘”);
    }.

    Skrg saya mau tanya lagi Pak Masino, saya buat dynamic selection, waktu add saya tidak ingin mengeluarkan tersebut tp field tersebut muncul di list, bagaiman setting default value nya pak? dan waktu di edit dynamic selection nya keluar… Terimah kasih sebelumnya Pak Masino….

    Balas
    • Masino Sinaga mengatakan

      Desember 14, 2015 pada 3:01 pm

      Anda bisa mengeset property Filter dengan membuat pemeriksaan kondisi menggunakan format sintaks PHP seperti ini:

      (kondisi_yang_diharapkan) ? '{string filter utk kondisi yg diharapkan}' : '{string filter utk kondisi selain yg tidak diharapkan}'
      
      Balas
  7. trie mengatakan

    Maret 23, 2016 pada 9:34 pm

    Apakah mungkin php maker bisa imput data lebih dari satu item sekaligus dengan no sama …..contohnya……sya pnya konsumen A dia membeli 5 jenis barang yang berbeda dan sy ingin imput data tersebut sekaligus dengan 5 item satu konsummen…mohon penjelasanya

    Balas
    • Masino Sinaga mengatakan

      Maret 23, 2016 pada 9:44 pm

      Bukan mungkin lagi, tapi PHPMaker jelas bisa!

      Mau contoh? Klik di sini.

      Balas
      • trie mengatakan

        Maret 24, 2016 pada 7:55 am

        Maaf pak masino sya belum menemukan cntoh yg saya maksud dari contoh aplikasi yg pak masino berikan

        Balas
        • Masino Sinaga mengatakan

          Maret 24, 2016 pada 9:09 am

          Setelah berhasil login, klik menu Purchases, lalu klik tombol Add Purchases/Purchases Detail.

          Balas
          • trie mengatakan

            Maret 24, 2016 pada 6:33 pm

            Contoh kodenya gimana ya pak…..bila ada pembeli nama A dia memesan 5 jenis barang yang berbeda dan di input sekaligus disimpan di list sementara setelah selesai baru simpan semua kedatabase..mohon bantuanya dan trims

            Balas
            • Masino Sinaga mengatakan

              Maret 26, 2016 pada 6:37 pm

              Anda bisa mendownload contoh kodenya dari file project PHPMaker untuk Stock Inventory tersebut setelah menjadi member di website I Love PHPMaker.

              Balas
  8. alfa mengatakan

    Maret 29, 2016 pada 7:24 pm

    Selamat malam pak masino
    …..sy punya data input barang dengan girdadd kolommya banyak pak tetapi karakternya cuma sedikit2. Pertannyaan saya gimana caranya memperkecil kolom digirdadd ya pak supaya tidak terlalu panjang kesamping…..mohon batuanya trima kasih

    Balas
    • Masino Sinaga mengatakan

      Maret 30, 2016 pada 9:30 am

      Kecilkan nilai property Size milik field yang bertalian dari tab Fields -> panel Edit Tag.

      Balas
      • alfa mengatakan

        Maret 30, 2016 pada 10:45 am

        Trima kasih banyak pak

        Balas
        • Masino Sinaga mengatakan

          Maret 30, 2016 pada 10:49 am

          Sama-sama.

          Balas
  9. Meidy N Surawinata mengatakan

    September 19, 2016 pada 4:16 pm

    Sore pak
    Mau tanya apakah di PHPMaker dapat membuat laporan absensi per bulan. Mulai tanggal 1 sd akhir bulan dengan posisi menyamping ?

    Apakah di set dlm bentuk report khusus ? Atau bagaimana pak ?

    Apakah ada contoh nya ?

    Terimakasih.

    Balas
    • Masino Sinaga mengatakan

      September 21, 2016 pada 12:46 pm

      Bisa, pakai fitur Custom Files.

      Balas
  10. Riyantoko Agung mengatakan

    Oktober 28, 2016 pada 8:54 am

    mas boleh tanya ?
    saya punya kasus seperti ini:
    saya punya tabel barang, yang isi kolomnya id_barang, nama_barang, harga_satuan, jumlah, harga_total
    saya kan buat isi data dalam tabel itu ditampilin semua
    SELECT * FROM barang.
    yang jadi pertanyaan gimana caranya membuat harga_total terisi otomatis setelah saya mengisi harga_satuan dan jumlah.
    seandainya itu data dengan jumlah pasti saya bisa, tapi kendala saya disini data dalam tabel tersebut tidak pasti berapa baris.
    saya sudah coba tetapi yang bisa terisi otomatis hanya baris pertama, untuk kedua dan seterusnya tidak bisa terisi otomatis

    Balas
    • Masino Sinaga mengatakan

      November 1, 2016 pada 10:32 am

      Silahkan download file demo project yang sudah disediakan oleh PHPMaker. Setelah Anda generate, lihat hasilnya pada menu/halaman “Order Details”.

      Balas
  11. Alief mengatakan

    November 15, 2017 pada 9:01 am

    pak masino, mau tanya dong, saya buat file custom buat ngirim email, masalahnya, leng dari textbox nya itu ga muat kalo dikirim lewat URL, sedangkan yang saya tau kalo klik button, file custom di PHPMaker selalu ngelempar data ke URL, adakah cara lain?
    Terima kasih 🙂

    Balas
    • Masino Sinaga mengatakan

      November 17, 2017 pada 3:18 pm

      Anda bisa menggunakan server event yang bernama Email_Sending. Baca topik Server Events and Client Scripts dari menu Help PHPMaker untuk info dan contoh kode lebih lanjut.

      Balas

Tinggalkan Balasan ke Meidy N Surawinata Batalkan balasan

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Pos-pos Terbaru

  • Mudahnya Memeriksa Pengguna Apakah Sudah Diaktivasi di PHPMaker 2020
  • Scrolling Table di Halaman User Privileges pada PHPMaker 2020
  • Video Masino Extensions untuk PHPMaker 2020
  • Silahkan Download, Masino Extensions untuk PHPMaker 2020 Sudah Dirilis
  • Horeeeee … PHPMaker 2020 Sudah Dirilis

Menu

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

Komentar Terbaru

  • Masino Sinaga pada Silahkan Download, Masino Extensions untuk PHPMaker 2020 Sudah Dirilis
  • Masino Sinaga pada Silahkan Download, Masino Extensions untuk PHPMaker 2020 Sudah Dirilis
  • Rudy Budiana pada Silahkan Download, Masino Extensions untuk PHPMaker 2020 Sudah Dirilis
  • Rudy Budiana pada Silahkan Download, Masino Extensions untuk PHPMaker 2020 Sudah Dirilis
  • Masino Sinaga pada Silahkan Download, Masino Extensions untuk PHPMaker 2020 Sudah Dirilis

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