Multiple Dropdownlist dalam Yii

Posted: 24 January, 2014 in php, programming

Salam semua kepada pembaca blog ini. Alhamdulillah dah masuk tahun baru dah kita, semoga semangat baru dapat menyemarakkan prestasi dan sumbangan kita pada agama, bangsa dan negara. Cewah. Awal tahun ni aku disibukkan dengan tugas tugas yang memang sangat-sangat memeningkan kepala, nak buat macam mana, nak tak nak kena hadap jugak kan. Hehehe.

Untuk awal tahun ni, aku ada nak buat satu Sistem Dashboard ICT JHEAINS, dalam sistem ini ada beberapa modul kecil yang akan dikembangkan dari masa ke semasa mengikut keperluan. Buat masa ni aku bercadang nak buat modul pinjaman peralatan ICT, modul aduan kerosakan ICT dan modul permohonan email rasmi jabatan.

Paparan Sistem Dashboard ICT JHEAINS

Paparan Sistem Dashboard ICT JHEAINS

Buat masa ni aku tengah cuba siapkan Modul Pinjaman Peralatan dulu. Berikut adalah paparan Borang Permohonan Pinjaman Peralatan yang di isi oleh pengguna.

Borang Permohonan Pinjaman Peralatan

Borang Permohonan Pinjaman Peralatan

Kat bawah ni ada satu set dropdownlist. Bila pengguna memilih Jenis Peralatan, dropdownlist yang lain akan update valuenya secara automatik.

Multiple dropdownlist

Multiple dropdownlist

Berikut adalah code yang aku gunakan untuk tujuan ni.

Untuk form

<td bgcolor="#FFFFA8">Jenis Peralatan</td>
<td colspan="3" bgcolor="#FFFFA8">
<?php
echo $form->dropDownList($model,'jenis_peralatan',
CHtml::listData(JenisPeralatan::model()->findAll(),'kategori','kategori'),

array(
    'empty'=>'Pilih Kategori',
    'ajax' => array(
    'type' => 'POST',
    'url' => CController::createUrl('PermohonanPinjaman/namaperalatan'),
    'dataType'=>'json',
    'data'=>array('namaperalatan'=>'js:this.value'),

   'success'=>'function(data) {
$("#PermohonanPinjaman_jenis_perkakasan_1").html(data.dropDownPeralatan);
$("#PermohonanPinjaman_jenis_perkakasan_2").html(data.dropDownPeralatan);
$("#PermohonanPinjaman_jenis_perkakasan_3").html(data.dropDownPeralatan);
$("#PermohonanPinjaman_jenis_perkakasan_4").html(data.dropDownPeralatan);
$("#PermohonanPinjaman_jenis_perkakasan_5").html(data.dropDownPeralatan);
$("#PermohonanPinjaman_jenis_perkakasan_6").html(data.dropDownPeralatan);
   }',
)
));
?>

</td>
</tr>
<tr>
<tr>
<td bgcolor="#FFFFD7">Jenis Perkakasan</td>
<td bgcolor="#FFFFD7">
<?php
echo $form->dropDownList($model,'jenis_perkakasan_1',array(),array('prompt'=>'Pilih Perkakasan'));
?>
</td>

<td bgcolor="#FFFFD7">Bilangan Unit</td>
<td bgcolor="#FFFFD7">
<?php echo $form->textField($model,'unit_perkakasan_1',array('class'=>'span1','maxlength'=>1)); ?>
</td>
</tr>

<tr>
<td bgcolor="#FFFFA8">Jenis Perkakasan</td>
<td bgcolor="#FFFFA8">
<?php
echo $form->dropDownList($model,'jenis_perkakasan_2',array(),array('prompt'=>'Pilih Perkakasan'));
?>
</td>

<td bgcolor="#FFFFA8">Bilangan Unit</td>
<td bgcolor="#FFFFA8">
<?php echo $form->textField($model,'unit_perkakasan_2',array('class'=>'span1','maxlength'=>1)); ?>
</td>
</tr>
<tr>

<td bgcolor="#FFFFD7">Jenis Perkakasan</td>
<td bgcolor="#FFFFD7">
<?php
echo $form->dropDownList($model,'jenis_perkakasan_3',array(),array('prompt'=>'Pilih Perkakasan'));
?>
</td>
<td bgcolor="#FFFFD7">Bilangan Unit</td>
<td bgcolor="#FFFFD7">
<?php echo $form->textField($model,'unit_perkakasan_3',array('class'=>'span1','maxlength'=>1)); ?>
</td>
</tr>

<tr>
<td bgcolor="#FFFFA8">Jenis Perkakasan</td>
<td bgcolor="#FFFFA8">
<?php echo $form->dropDownList($model,'jenis_perkakasan_4',array(),array('prompt'=>'Pilih Perkakasan'));
?>
</td>
<td bgcolor="#FFFFA8">Bilangan Unit</td>
<td bgcolor="#FFFFA8">
<?php echo $form->textField($model,'unit_perkakasan_4',array('class'=>'span1','maxlength'=>1)); ?>
</td>
</tr>

<tr>
<td bgcolor="#FFFFD7">Jenis Perkakasan</td>
<td bgcolor="#FFFFD7">
<?php echo $form->dropDownList($model,'jenis_perkakasan_5',array(),array('prompt'=>'Pilih Perkakasan'));
?>
</td>
<td bgcolor="#FFFFD7">Bilangan Unit</td>
<td bgcolor="#FFFFD7">
<?php echo $form->textField($model,'unit_perkakasan_5',array('class'=>'span1','maxlength'=>1)); ?>
</td>
</tr>

<tr>
<td bgcolor="#FFFFA8">Jenis Perkakasan</td>
<td bgcolor="#FFFFA8">
<?php echo $form->dropDownList($model,'jenis_perkakasan_6',array(),array('prompt'=>'Pilih Perkakasan'));
?>
</td>
<td bgcolor="#FFFFA8">Bilangan Unit</td>
<td bgcolor="#FFFFA8">
<?php echo $form->textField($model,'unit_perkakasan_6',array('class'=>'span1','maxlength'=>1)); ?>
</td>
</tr>

Untuk controller

public function actionNamaperalatan()
{

$data=JenisPeralatan::model()->findAllByAttributes(array('kategori'=>$_POST['namaperalatan']));

$data=CHtml::listData($data,'jenis_perkakasan','jenis_perkakasan');

    $dropDownPeralatan = "";
        foreach($data as $value=>$name)
        {
           $dropDownPeralatan .= CHtml::tag('option',
           array('value'=>$value),CHtml::encode($name),true);
        }
    echo CJSON::encode(array(
    'dropDownPeralatan'=>$dropDownPeralatan
    ));

}

Ok lah buat masa ni. Insya Allah ada masa nanti aku update lagi blog ni yer.

Happy h4ckin dari pokcik gh1mau🙂
210166.strip

Lua Programming : Siri 1

Posted: 11 November, 2013 in programming

Salam semua, entri kali ni aku nak kongsi dan bincangkan tentang lua scripting. Lua adalah satu programming language yang digunakan dalam Wireshark, Snort dan Nmap. Nmap mempunyai satu function untuk menjalankan scripts, dan script ni boleh ditulis dengan menggunakan bahasa Lua ni. Untuk mula membuat scripting bagi nmap, pertama sekali, kita kena paham la sedikit sebanyak pasal lua ni. Nmap menyediakan API dan Libraries yang banyak dan memudahkan developer untuk membangunkan script baru. Insya Allah, nanti aku akan buat entri pasal nmap scripting ni.

lua

Lua is a powerful, fast, lightweight, embeddable scripting language.

Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting bytecode for a register-based virtual machine, and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping.

Lua is designed, implemented, and maintained by a team at PUC-Rio, the Pontifical Catholic University of Rio de Janeiro in Brazil. Lua was born and raised in Tecgraf, the Computer Graphics Technology Group of PUC-Rio, and is now housed at Lablua. Both Tecgraf and Lablua are laboratories of the Department of Computer Science of PUC-Rio.

“Lua” (pronounced LOO-ah) means “Moon” in Portuguese. As such, it is neither an acronym nor an abbreviation, but a noun. More specifically, “Lua” is a name, the name of the Earth’s moon and the name of the language. Like most names, it should be written in lower case with an initial capital, that is, “Lua”. Please do not write it as “LUA”, which is both ugly and confusing, because then it becomes an acronym with different meanings for different people. So, please, write “Lua” right!

Ok, tanpa membuang masa kita bincangkan sedikit sebanyak tentang asas Lua Programming ini. Pertama sekali kita akan lihat struktur function dalam lua. Macam mana kita nak buat function yang asas.

1

Function terdiri daripada beberapa komponen. Function bermula dengan sintaks seperti dibawah, dan ditutup dengan end. Function perlu diberi nama, objek didalam () adalah parameter. Code yang berada di dalam function disebut chunks. Berikut adalah satu function mudah untuk kita printkan senarai nombor dari 1 hingga 10.

function senarai(a,b)
for nombor = a,b do
print ("Bil:" ..nombor)
end
end

senarai(1,10)

Di dalam lua, kita boleh membuat comments seperti berikut:

-- ini adalah single line comment
--[[--
ini adalah
multiline comments
--]]--

Macam mana kita nak assign value pada variable? Dalam lua tak ada specific data type. Sangat mudah dan straightforward. Cuba lihat contoh dibawah.

nombor = 10
nama = "ali"
nama = 'ali'
kehadiran = false
warna {"merah","hijau","biru","kuning"}
paparkehadiran = kehadiran or "Tidak Hadir"
a,b,c = 1,2,3

Local variable, hanya boleh diakses dalam block dimana ianya dideclare, berbeza dengan global variable, boleh diakses dari mana-mana bahagian code. Dalam kod dibawah, kita declare satu local variable (nama) didalam function paparnama. Kemudian kita cuba paparkan variable nama (print(nama)) dari luar function tersebut. Hasilnya adalah nil(tiada).

function paparnama()
local nama = "Ali"
end

print (nama)

Kita declare satu global variable nama,dan bila kita print variable nama, kita akan dapat nilai Abu.

nama = "Abu"
function paparnama()
local nama = "Ali"
end

print (nama)

2

Sekarang ni kita bincangkan secara asas tentang loops. Kita akan gunakan for loop. Konsepnya sama saja dengan programming language yang lain, jadi tak yah la nak citer panjang la. heheheh🙂

for nombor = start, maximum, increment do
print ("Bil:" ..nombor)
end

3

Ok la, Insya Allah nanti kita akan sambung perbincangan pasal Lua ni dalam siri yang lain.

Happy h4ckin dari pokcik gh1mau🙂

196051.strip.sunday

Sistem e-sman

Posted: 2 November, 2013 in tutorials

Salam semua, apa khabar korang yer. Punya lah lama aku tak berblog ni. Biasalah kan, Bz.. Bz.. Bz.. Hehehe. Macam tu lah kehidupan seorang manusia. Kalau ikutkan nak update blog ni pun takder masa sangat, tapi disebabkan nak hidupkan balik blog ni, aku update la yer. Hehehe.

Entri kali ni, nak citer serba ringkas pasal sistem yang aku tengah buat sekarang ni, Sistem Pendaftaran Tingkatan 1 Sekolah Agama Negeri Sembilan. Tak leh nak citer panjang-panjang, sebab nak sambung siapkan sistem ni. Hehehe. Sistem ni ada banyak modul dari proses permohonan pelajar, pemilihan temuduga, pemarkahan temuduga, tawaran dan macam-macam lagi, semua nak online. Huhuhu.. layankan ajer la. Aku tak dapat nak citer panjang pasal sistem ni, aku just letakkan screenshot dia saja la. Masih ada lagi modul-modul lain yang aku belum siapkan.

Login dan Pendaftaran Pengguna

Login dan Pendaftaran Pengguna

Modul Permohonan Pelajar

Modul Permohonan Pelajar

Modul Papan Pentadbir, rumusan permohonan dan tapisan awal

Modul Papan Pentadbir, rumusan permohonan dan tapisan awal

 

Modul Senarai Permohonan dipecahkan mengikut kriteria tertentu

Modul Senarai Permohonan dipecahkan mengikut kriteria tertentu

 

Senarai pemohon yang diberi markah secara automatik berdasarkan kriteria tertentu

Senarai pemohon yang diberi markah secara automatik berdasarkan kriteria tertentu

 

Modul Pemilihan Pelajar untuk panggilan temuduga

Modul Pemilihan Pelajar untuk panggilan temuduga

 

Modul Senarai Pelajar yang layak dipanggil temuduga.

Modul Senarai Pelajar yang layak dipanggil temuduga.

 

Sistem ni aku bangunkan 100% mengikut kehendak pengguna. Tiap-tiap hari Jumaat meeting dengan diorang, aduh.. pening kepala, macam-macam permintaan, tapi hasilnya diorang betul-betul komit dengan sistem ni. Alhamdulillah, satu kepuasan untuk aku. Cewah.

Ni aku kongsi code untuk paparkan bilangan di dalam CGridview

array(
'header'=>'Bil',
'value'=>'$this->grid->dataProvider->pagination->offset + $row+1',
'headerHtmlOptions'=>array('width'=>'30',),
'htmlOptions'=>array('style'=>'text-align: center'),
),

Happy h4ckin dari pokcik gh1mau🙂

201720.strip

 

Yii Dependent Dropdownlist

Posted: 23 July, 2013 in php, programming

Salam semua. hari ni dah 14 Ramadhan dah, macam menghitung hari nak raya pulak kan. Hehehe. Kali ni aku nak kongsi macam mana kita nak buat dependent dropdownlist dalam yii framework ni. Aku akan gunakan sistem emihrab sebagai demo untuk tujuan ni. Kira upgrade lagi version dia. Minor bug fix gitu🙂

Ok, tanpa membuang masa, kita terus ke technical part. Rajah dibawah menunjukkan sebahagian dari database diagram bagi sistem ni. Kalau kita tengok sekiran pengguna memilih parlimen tertentu, sepatutnya hanya dun yang dibawah parlimen dipilih sahaja dipaparkan.

drop1

Tapi disebabkan kekangan masa sewaktu nak buat sistem emihrab dulu (3 hari jer beb), fungsi ni tak sempat aku nak buat. Untuk menunjukkan perbezaan, berikut adalah paparan sistem ini sebelum ditambah dengan fungsi dependent dropdownlist. Setiap dropdown akan memaparkan semua data tanpa mengira parent atau child.

drop2

Apa yang kita nak lakukan adalah, bila dropdown parlimen dipilih, secara automatik dropdown nama dun dan kod dun akan memaparkan maklumat dun mengikut parlimen yang dipilih sahaja.

drop3

 

Berikut merupakan code pada controller yang berkaitan. Ingat, action yang baru kita buat, kita perlu declare pada access rules.

public function actionNamadun()
{
$data = Dun::model()->findAll('parlimen=:parlimen',
array(':parlimen'=>(int) $_POST['SenaraiMasjid']['parlimen']));

$data = CHtml::listData($data,'nama_dun','nama_dun');
foreach($data as $id => $value)
{
echo CHtml::tag('option',array('value' => $id),
CHtml::encode($value),true);
}

}

public function actionKoddun()
{
$data = Dun::model()->findAll('parlimen=:parlimen',
array(':parlimen'=>(int) $_POST['SenaraiMasjid']['parlimen']));

$data = CHtml::listData($data,'kod_dun','kod_dun');
foreach($data as $id => $value)
{
echo CHtml::tag('option',array('value' => $id),
CHtml::encode($value),true);
}
}

Dan ini pula code bagi view file.

<tr>
<td><?php echo $form->labelEx($model,'parlimen'); ?></td>
<td>
<?php
echo $form->dropDownList($model,'parlimen',
CHtml::listData(Parlimen::model()->findAll(),'parlimen','parlimen'),
array(
'empty'=>'PILIH PARLIMEN',
'ajax' => array(
'type' => 'POST',
'url' => CController::createUrl('senaraimasjid/namaDun'),
'update' => '#SenaraiMasjid_'.'dun2'
)
));
?>
</td>

<td><?php echo $form->labelEx($model,'daerah'); ?></td>
<td>
<?php
echo $form->dropDownList($model,'daerah',
CHtml::listData(Daerah::model()->findAll(), 'daerah','daerah'),
array(
'empty'=>'PILIH DAERAH',
));
?>
</td>
</tr>

<tr>
<td><?php echo $form->labelEx($model,'dun2'); ?></td>
<td>
<?php
echo $form->dropDownList($model,'dun2',
CHtml::listData(Dun::model()->findAll(),'nama_dun','nama_dun'),
array(
'empty'=>'PILIH NAMA DUN',
'ajax' => array(
'type' => 'POST',
'url' => CController::createUrl('senaraimasjid/kodDun'),
'update' => '#SenaraiMasjid_'.'dun1'
)
));
?>
</td>

<td><?php echo $form->labelEx($model,'dun1'); ?></td>
<td>
<?php
echo $form->dropDownList($model,'dun1',
CHtml::listData(Dun::model()->findAll('parlimen= :parlimen',
array(':parlimen'=>$model->parlimen)), 'kod_dun', 'kod_dun'),
array('empty'=>'PILIH KOD DUN'));
?>
</td>
</tr>

Dan hasilnya adalah seperti berikut, nama dun dan kod dun yang dipaparkan adalah mengikut parlimen yang dipilih. Lagi sekali, fungsi ini dibuat adalah untuk memudahkan pengguna menggunakan sistem. Hehehe. Nasib kau la labu.

drop4

 

drop5

Happy h4ckin dari pokcik gh1mau🙂

188976.strip.sunday