form_dropdown dengan 2 nilai field tabel dalam CodeIgniter Versi 2

Contoh Kasus:

Seorang anak kursus mempunyai permasalahan dalam menampilkan 2 nilai pada form_dropdown.

Diketahui:

Nama Tabel adalah vra_master_alat dengan isi seperti terlihat pada tabel berikut ini:

kode_alat merek_model
J09 Komatsu PC100
A12 Komatsu PC200
A13 M1

Controller yang sudah dibuat

<?php if(! defined(‘BASEPATH’))exit (“no direct script access allowed”);

class Timesheet extends CI_Controller {

function __construct() {

parent::__construct();

}

function add() {

$data[‘list_alat’] = $this->M_history_alat->get_dropdown_array_alat(‘kode_alat’, ‘merek_model’,‘vra_master_alat’);

$this->load->view(‘trans/timesheet/timesheet_add’,$data);

}

}

?>

Model Yang sudah dibuat

<?php

class M_history_alat extends CI_Model{

function __construct(){

parent::__construct();

}

function get_dropdown_array_alat($key, $value, $from){

$result = array();
$array_keys_values = $this->db->query(‘select ‘.$key.’, ‘.$value.’ from ‘.$from.’ order by ‘.$value.’ asc’);

foreach ($array_keys_values->result() as $row){

$result[$row->$key]= $row->$key.’ – ‘.$value;

}
return $result;

}

}

?>

View yang sudah dibuat

<form action=“<?=base_url();?>trans/timesheet/saveadd” method=“post” enctype=“multipart/form-data”>

<table border=“0” cellpadding=“0” cellspacing=“0” style=“border-collapse: collapse” width=“100%” height=“83”>
<tr>

<td width=“18%”>Kode Alat</td>
<td width=“1%”>&nbsp;</td>

<td width=“80%”><?=form_dropdown(‘cbo_alat’, $list_alat, set_value(‘cbo_alat’, $kode_alat));?></td>

</tr>

</table>

</form>

Nah dari MVC yang sudah dibuat diatas maka akan menampilkan bentuk seperti berikut ini:

Terlihat jelas bahwa pengambilan nilai merek_modelnya salah.

Permintaan:

Anak kursus tersebut ingin menampilkan pilihan dropdown seperti dibawah ini:

Seperti terlihat di atas nilai yang ditampilkan pada pilihan dropdown itu mengambil dari 2 field yaitu kode_alat dan merek_model.

Pertanyaan:

Bagaimana membuatnya menjadi benar … ?

Analisa:

Nilai yang ditampilkan pada pilihan dropdown yang sudah dibuat oleh anak kursusĀ  adalah J09 – merek_model.

Testing Query dari PHPMyAdmin

select kode_alat, merek_model from vra_master_alat order by merek_model asc;

Ternyata hasilnya benar, berarti masalah terjadi pada metode pengambilan datanya.

Testing Pengambilan Datanya

foreach ($array_keys_values->result() as $row){

$result[$row->$key]= $row->$key.’ – ‘.$value;

}

hmm, dia menggunakan metode result() tapi belum mengerti maksudnya (bisa dilihat di metode_result)

intinya dari koding foreach diatas dia ingin mengambil bentuk array seperti berikut ini:

Array ( [JO9] => JO9 – Komatsu PC100 [A12] => A12 – Komatsu PC200 [A13] => A13 – M1 )

Sedangkan koding yang sudah dia buat menghasilkan bentuk array seperti berikut ini:

Array ( [JO9] => JO9 – merek_model [A12] => A12 – merek_model [A13] => A13 – merek_model )

Jadi blok foreachnya harus dirubah menjadi seperti dibawah ini:

foreach ($array_keys_values->result() as $row){

$result[$row->kode_alat]= $row->kode_alat.‘ – ‘.$row->merek_model;

}

Jika tutorial ini bermanfaat silahkan katakan ‘Terima Kasih Fahmi Basya Kartapura’.

You may also like...

1 Response

  1. Endi says:

    Salam kenal Pak. Tutorial ini tepat sekali buat saya. Kebetulan saya juga sedang mencari tutorial untuk memasukkan dua nilai ke dalam dropdown list. Saya mau tanya Pak, bagaimana seandainya jika kita ingin memasukkan data dari dropdown list yang berisi dua nilai ini ke dalam database? Sedangkan yang kita inginkan adalah 2 nilai ini dimasukkan ke dalam field yang terpisah di dalam database? Saya mohon Bapak bisa memberikan penjelasannya. Terimakasih Pak. Tutorialnya sangat bermanfaat.

Leave a Reply

Your email address will not be published. Required fields are marked *