Sederhanakan Script Berulang - JackMizh/Sisekar GitHub Wiki
1. Penggunaan Session
$data['per_page'] = $this->session->per_page;
- Jika lebih dari 2 session
private $_list_session;
$this->_list_session = ['status_dasar', 'sex', 'dusun', 'rw', 'rt', 'cari', 'kelas', 'filter', 'id_bos', 'judul_statistik', 'bantuan_keluarga'];
foreach ($this->_list_session as $list)
{
$data[$list] = $this->session->$list ?: '';
}
$this->session->unset_userdata($this->_list_session);
2. Penggunaan Filtering Pada Controller
public function filter($filter)
{
$value = $this->input->post($filter);
if ($value != '')
$this->session->$filter = $value;
else $this->session->unset_userdata($filter);
redirect('keluarga');
}
<select class="form-control input-sm" name="status_dasar" onchange="formAction('mainform', '<?=site_url('keluarga/filter/status_dasar')?>')">
3. Penggunaan Filtering Pada Model
$kolom_kode = [
array('dusun', 'c.dusun'),
array('rw', 'c.rw'),
array('rt', 'c.rt'),
array('sex', 't.sex'),
array('kelas', 'u.kelas_sosial'),
array('id_bos', 'id_bos'),
];
foreach ($kolom_kode as $kolom)
{
$sql .= $this->get_sql_kolom_kode($kolom[0], $kolom[1]);
}
protected function get_sql_kolom_kode($kode_session, $kode_kolom)
{
$value = $this->session->$kode_session;
if (isset($value))
{
if ($value == BELUM_MENGISI)
$sql = " AND (".$kode_kolom." IS NULL OR ".$kode_kolom." = '')";
else
$sql = " AND ".$kode_kolom." = '$value'";
return $sql;
}
}