Berita

Mengubah form untuk Input Koleksi Buku pakai kelas CActiveForm

12 tahun yang lalu

(oleh: Badiyanto)

Form masukan secara otomatis terbentuk pada saat menggunakan CRUD genereator. Dalam kasus ini model/kelas TblBuku akan menempatkan modul input/ouput yang diletakkan  dalam forder protected/views/tblBuku/...  untuk itu buka dan ubah file _form.php seperti pada kode berikut :

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'tbl-buku-form',
    'enableAjaxValidation'=>false,
)); ?>
    <p class="note">Fields with <span class="required">*</span> are required.</p>

    <?php echo $form->errorSummary($model); ?>

    <div class="row">
        <?php echo $form->labelEx($model,'judul_buku'); ?>
        <?php echo $form->textField($model,'judul_buku',array('size'=>60,'maxlength'=>100)); ?>
        <?php echo $form->error($model,'judul_buku'); ?>
    </div>

    <div class="row">
        <?php echo $form->labelEx($model,'pengarang_id'); ?>
       
        <?php echo $form->dropDownList($model,'pengarang_id',CHtml::listData(
                TblPengarang::model()->findAll(), 'id','nama_pengarang'),
                array('prompt'=>'= Pilihan =','style'=>'width:200px;')); ?>
        <?php echo $form->error($model,'pengarang_id'); ?>
    </div>

    <div class="row">
        <?php echo $form->labelEx($model,'penerbit_id'); ?> 
        <?php echo $form->dropDownList($model,'penerbit_id',
                   CHtml::listData(TblPenerbit::model()->findAll(), 'id','nama_penerbit'),
              array('prompt'=>'= Pilihan =','style'=>'width:200px;')); ?>
        <?php echo $form->error($model,'penerbit_id'); ?>
    </div>

    <div class="row">
        <?php echo $form->labelEx($model,'isbn_issn'); ?>
        <?php echo $form->textField($model,'isbn_issn',array('size'=>30,'maxlength'=>30)); ?>
        <?php echo $form->error($model,'isbn_issn'); ?>
    </div>

    <div class="row buttons">
        <?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>
    </div>

<?php $this->endWidget(); ?>

</div><!-- form -->

 

Perintah :
<?php echo $form->dropDownList($model,'penerbit_id',
          CHtml::listData(TblPenerbit::model()->findAll(), 'id','nama_penerbit'),
         array('prompt'=>'= Pilihan =','style'=>'width:200px;')); ?>

adalah menyajikan input dengan ComboBox/dropDownList  dengan isi pilihan nama pengarang mengambil dari model
TblPenerbit::model()->findAll(), 'id','nama_penerbit'

Kemudian bagain create.php

<?php
/* @var $this TblBukuController */
/* @var $model TblBuku */

$this->breadcrumbs=array(
    'Tbl Bukus'=>array('index'),
    'Create',
);

$this->menu=array(
    array('label'=>'List Buku', 'url'=>array('index')),
    array('label'=>'Manajemen Buku', 'url'=>array('admin')),
);
?>

<h1>Input Koleksi Buku</h1>
<?php echo $this->renderPartial('_form', array('model'=>$model)); ?>

penjelasan:

Tanpilan view craete.php ditambahkan form input koleksi buku dengan perintah :


<?php echo $this->renderPartial('_form', array('model'=>$model)); ?>


array('model'=>$model) : memangil _form.php dengan menyertakan variabel $model;


Hubungannya dengan TblBukuController.php

public function actionCreate()
    {
        $model=new TblBuku;

        // Uncomment the following line if AJAX validation is needed
        // $this->performAjaxValidation($model);

        if(isset($_POST['TblBuku']))
        {
            $model->attributes=$_POST['TblBuku'];
            if($model->save())
                $this->redirect(array('view','id'=>$model->id));
        }

        $this->render('create',array(
            'model'=>$model,
        ));
    }



Berita Lainnya

Tingkatkan Kualitas Publikasi Ilmiah Dosen, UTDI Gelar Workshop Paper Untuk Syarat Khusus Lektor Kepala Dan Guru Besar
Tingkatkan Kualitas Publikasi Ilmiah Dosen, UTDI Gelar Workshop Paper Untuk Syarat Khusus Lektor Kepala Dan Guru Besar

satu hari yang lalu

[Yogyakarta, 24 Februari 2026] - Universitas Teknologi Digital Indonesia (UTDI) menyelenggarakan kegiatan Workshop Pembuatan Paper untuk Syarat Khusus Lektor Kepala (LK) ...

Selengkapnya
UTDI Terima Hibah Laboratorium interaktif Untuk Prodi Bisnis Digital
UTDI Terima Hibah Laboratorium interaktif Untuk Prodi Bisnis Digital

3 hari yang lalu

[Yogyakarta,18 Februari 2026] – Universitas Teknologi Digital Indonesia (UTDI) secara resmi menerima hibah fasilitas laboratorium. Fasilitas mutakhir ini diproyeksikan menjadi pusat ...

Selengkapnya
Akselerasi Sulteng Digital: UTDI Gandeng Pemprov dan Disdikbud Sulteng Wujudkan Program
Akselerasi Sulteng Digital: UTDI Gandeng Pemprov dan Disdikbud Sulteng Wujudkan Program "Berani Cerdas"

15 hari yang lalu

[Palu, 10 Februari 2026] – Universitas Teknologi Digital Indonesia (UTDI) menegaskan komitmennya dalam mendukung pembangunan sumber daya manusia berbasis digital di Indonesia ...

Selengkapnya