When I made selection in a "Parent" dropdown the library dont refreshes a "child" dropdown. It is a disabled. gc_dependent_select.php
also I tried kadabra's code, child dropdown shows all the registers.
Help Please, now my code:
function listar_vehiculos()
{
try{
/* Creamos el objeto */
$crud = new grocery_CRUD();
date_default_timezone_set('America/Caracas');
/* Seleccionamos el tema */
$crud->set_theme('flexigrid');
/* Seleccionmos el nombre de la tabla de nuestra base de datos*/
$crud->set_table('vehiculo');
/* Le asignamos un nombre */
$crud->set_subject('Datos');
/* Asignamos el idioma español */
$crud->set_language('spanish');
/*Tabla relacionadas*/
$crud->set_relation('idmarca','veh_marca','marca');
$crud->set_relation('idmodelo','veh_modelo','modelos');
$crud->set_relation('idtipo','veh_tipo','tipo');
$crud->set_relation('idubicacion','veh_ubicacion','ubicacion');
$crud->set_relation('idasignada','veh_asignada','asignada');
$crud->set_relation('idsistema','veh_sistema','sistema');
$crud->set_relation('idempresa','empresa','nombre',array('estatus' => '1'));
$this->load->library('gc_dependent_select');
// settings
$fields = array(
// first field:
'idmarca' => array( // first dropdown name
'table_name' => 'veh_marca', // table of country
'title' => 'marca', // country title
'relate' => null // the first dropdown hasn't a relation
),
// second field
'idmodelo' => array( // second dropdown name
'table_name' => 'veh_modelo', // table of state
'title' => 'modelos', // state title
'id_field' => 'idmodelo', // table of state: primary key
'relate' => 'idmarca', // table of state:
'data-placeholder' => 'Selecciona Modelo' //dropdown's data-placeholder:
));
$config = array(
'main_table' => 'vehiculo',
'main_table_primary' => 'idvehiculo',
"url" => site_url().'/vehiculos/datos_vehiculo/get_states',
'ajax_loader' => base_url().'ajax-loader.gif', // path to ajax-loader image. It's an optional parameter
'segment_name' =>'get_items' //It's an optional parameter. by default "get_items"
);
$categories = new gc_dependent_select($crud, $fields, $config);
/* Aqui le decimos a grocery que estos campos son obligatorios */
$crud->required_fields('unidad', 'fechaadquisicion','idmarca','idmodelo','serialmotor','serialcarroceria','ano','capacidad',
'idtipo', 'color','idubicacion','idasignada','idempresa');
/* Aqui le indicamos que campos deseamos mostrar */
$crud->columns('unidad', 'placa','fechaadquisicion','idmodelo');
$crud -> field_type ( 'estatus', 'dropdown',
array ( '1' => 'Operativa', '2' => 'No Operativa','3' => 'En Mantenimiento','4' => 'Desincorporado','5' => 'Perdida Total','6' => 'Robado/Desaparecido'));
$crud -> field_type ( 'disponibilidad', 'dropdown',
array ( '1' => 'Está Disponible', '2' => 'No Está Disponible'));
$crud -> field_type ( 'observacioninicial', 'text');
/*SE UTILIZA ESTA SENTENCIA PARA SOLO INSERTAR LOS CAMPOS QUE DESEAMOS*/
$crud->add_fields('unidad', 'placa','fechaadquisicion','idmarca','idmodelo','serialmotor','serialcarroceria','chasis','ano','capacidad',
'idtipo', 'color','disponible','idubicacion','idasignada','idsistema','kmactual','idempresa',
'estatus','observacioninicial');
/*SE UTILIZA ESTA SENTENCIA PARA SOLO EDITAR LOS CAMPOS QUE DESEAMOS*/
$crud->edit_fields('unidad', 'placa','fechaadquisicion','idmarca','idmodelo','serialmotor','serialcarroceria','chasis','ano','capacidad',
'idtipo', 'color','disponible','idubicacion','idasignada','idsistema','kmactual','idempresa',
'estatus','observacioninicial');
// the second method:
$js = $categories->get_js();
$output = $crud->render();
$output->output.= $js;
//DEPENDENT DROPDOWN SETUP
/*$dd_data = array(
//GET THE STATE OF THE CURRENT PAGE - E.G LIST | ADD
'dd_state' => $crud->getState(),
//SETUP YOUR DROPDOWNS
//Parent field item always listed first in array, in this case countryID
//Child field items need to follow in order, e.g stateID then cityID
'dd_dropdowns' => array('idmarca','idmodelo'),
//SETUP URL POST FOR EACH CHILD
//List in order as per above
'dd_url' => array('',site_url().'/vehiculos/datos_vehiculo/get_states/'),
//LOADER THAT GETS DISPLAYED NEXT TO THE PARENT DROPDOWN WHILE THE CHILD LOADS
'dd_ajax_loader' => base_url().'ajax-loader.gif'
);
$output->dropdown_setup = $dd_data;*/
//AQUI PARA QUE CARGUE EL MENU SI ESTOY LOGUEADO
if($this->session->userdata('is_logged_in')){
$this->load->model('menu/menu_model');
$data['menu_parents']=$this->menu_model->get_parents_by_perfil($this->session->userdata('grupo')); //envia la opciones de menu
foreach($data['menu_parents'] as $parent)
{
$data['menu_childs']=$this->menu_model->get_childs_by_perfil($parent['id_modulo']); //envia los datos de los submenus
}
}
$output = array_merge( (array)$output, $data);
/* La cargamos en la vista situada en /applications/views/vehiculos/modelos.php */
$this->load->view('vehiculos/datos_vehiculo', $output);
}catch(Exception $e){
/* Si algo sale mal cachamos el error y lo mostramos */
show_error($e->getMessage().' --- '.$e->getTraceAsString());
}
}
//GET JSON OF STATES
function get_states()
{
$idmarca = $this->uri->segment(3);
$this->db->select("*")
->from('veh_modelo')
->where('idmarca', $idmarca);
$db = $this->db->get();
$array = array();
foreach($db->result() as $row):
$array[] = array("value" => $row->idmodelo, "property" => $row->modelos);
endforeach;
echo json_encode($array);
exit;
}