Hola Andrea,
Te faltaban unos detalles.
Te copio mi controlador.php
<?php
namespace cordoba\operaciones\solicitud_titulo;
use kernel\kernel;
use cordoba\guarani;
use siu\extension_kernel\controlador_g3w2;
use siu\extension_kernel\controlador_errores_control;
use siu\modelo\datos\catalogo;
use kernel\util\validador;
use cordoba\modelo\transacciones\solicitud_titulo;
use \siu\errores\error_guarani_control;
include_once(\siu\guarani::dir().'/lib/phpqrcode/qrlib.php');
class controlador extends controlador_errores_control
{
public $hash_titulos;
public $hash_orientacion;
public $hash_provincia;
public $hash_depto;
function ini()
{
$this->controlar_csrf_accion('guardar');
}
function modelo()
{
return new solicitud_titulo();
}
function accion__index()
{
kernel::renderer()->add($this->vista()->pagelet('formulario'));
}
function accion__busca_titulos()
{
$carrera_hash = $this->validate_param('carrera', 'post', validador::TIPO_ALPHANUM);
$carrera = $this->decodificar_carrera($carrera_hash);
$parametros = array();
if (!empty($carrera)){
$parametros = array('carrera' => $carrera['carrera'], 'plan' => $carrera['plan']);
}
$nuevo = array();
if (!empty($parametros)){
$nuevo = catalogo::consultar('colacion', 'busca_titulos', $parametros);
}
$this->render_raw_json($nuevo);
}
function accion__busca_orientacion()
{
$titulo_hash = $this->validate_param('titulo', 'post', validador::TIPO_ALPHANUM);
$carrera_hash = $this->validate_param('carrera', 'post', validador::TIPO_ALPHANUM);
$carrera = $this->decodificar_carrera($carrera_hash);
$nuevo = array();
if (!empty($carrera)){
$parametros = array('carrera' => $carrera['carrera'], 'plan' => $carrera['plan']);
$titulos = catalogo::consultar('colacion', 'busca_titulos', $parametros);
if (!empty($titulos)){
foreach($titulos as $titulo){
if ($titulo_hash == $titulo["__ID__"]){
$parametros = array ('carrera' => $carrera['carrera'], 'plan' => $carrera['plan'], 'titulo' => $titulo['ID']);
if (!empty($parametros)){
$nuevo = catalogo::consultar('colacion', 'busca_orientacion', $parametros);
}
}
}
}
}
$this->render_raw_json($nuevo);
}
function accion__busca_provincia()
{
$pais_hash = $this->validate_param('pais', 'post', validador::TIPO_ALPHANUM);
$pais = $this->decodificar_pais($pais_hash);
$parametros = array();
if (!empty($pais)){
$parametros = array('cod_pais' => $pais['cod_pais']);
}
$nuevo = array();
if (!empty($parametros)){
$nuevo = catalogo::consultar('colacion', 'busca_provincia', $parametros);
}
$this->render_raw_json($nuevo);
}
function accion__busca_depto()
{
$provincia_hash = $this->validate_param('provincia', 'post', validador::TIPO_ALPHANUM);
$pais_hash = $this->validate_param('pais', 'post', validador::TIPO_ALPHANUM);
$pais = $this->decodificar_pais($pais_hash);
$nuevo = array();
if (!empty($pais)){
$parametros = array('cod_pais' => $pais['cod_pais']);
$provincias = catalogo::consultar('colacion', 'busca_provincia', $parametros);
if (!empty($provincias)){
foreach($provincias as $provincia){
if ($provincia_hash == $provincia["__ID__"]){
$parametros = array ('cod_prov' => $provincia['ID']);
if (!empty($parametros)){
$nuevo = catalogo::consultar('colacion', 'busca_depto', $parametros);
}
}
}
}
}
$this->render_raw_json($nuevo);
}
function accion__guardar()
{
$parametros['nro_inscripcion'] = kernel::persona()->get_nro_inscripcion();
$parametros['colacion'] = $this->get_param('sel_solicitud_titulo', 'post', 'string');
$sel_carrera = $this->get_param('sel_carrera', 'post', 'string');
$datos_carrera = $this->decodificar_carrera ($sel_carrera);
$parametros['carrera'] = $datos_carrera['carrera'];
$parametros['plan'] = $datos_carrera['plan'];
$sel_titulo = $this->get_param('filtro_titulos', 'post', 'string');
$datos_titulo = $this->decodificar_titulo($sel_carrera, $sel_titulo);
$parametros['titulos'] = $datos_titulo;
$parametros['orientacion'] = $this->get_param('filtro_orientacion', 'post', 'string');
$parametros['mail'] = $this->get_param('mail', 'post', 'string');
$parametros['telefono'] = $this->get_param('telefono', 'post', 'string');
$parametros['f_nac'] = $this->get_param('f_nac', 'post', 'string');
$parametros['cuil'] = $this->get_param('numero_cuil', 'post', 'string');
$parametros['rec_carrera'] = $this->get_param('sel_rec_carrera', 'post', 'string');
$sel_pais = $this->get_param('sel_pais', 'post', 'string');
$datos_pais = $this->decodificar_pais($sel_pais);
$parametros['pais'] = $datos_pais['cod_pais'];
$sel_provincia = $this->get_param('filtro_provincia', 'post', 'string');
$datos_provincia = $this->decodificar_provincia($sel_pais, $sel_provincia);
$parametros['provincia'] = $datos_provincia;
$parametros['depto'] = $this->get_param('filtro_depto', 'post', 'string');;
$parametros['conti'] = $this->get_param('sel_cont_estudios', 'post', 'string');
$parametros['oport'] = $this->get_param('sel_oport_trabajo', 'post', 'string');
$parametros['cont'] = $this->get_param('sel_cont_teorico', 'post', 'string');
$parametros['exp'] = $this->get_param('sel_exp_prac', 'post', 'string');
$parametros['eval'] = $this->get_param('sel_eval_gral', 'post', 'string');
$parametros['cuerpo'] = $this->get_param('sel_cuerpo_doc', 'post', 'string');
$parametros['adm'] = $this->get_param('sel_func_adm', 'post', 'string');
echo "
";
print_r($parametros);
exit;
$hubo_error = $this->modelo()->evt__guardarST($parametros);
$mensajes = $this->get_var('mensajes');
if (!empty($mensajes)) {
$this->vista()->set_hay_mensajes(true);
}
$this->vista()->set_error($hubo_error);
//kernel::renderer()->add_csrf($this->generar_csrf());
}
function decodificar_carrera($carrera_hash){
$carreras = catalogo::consultar('colacion', 'lista_carreras');
if (!empty($carreras)){
foreach($carreras as $carrera){
if ($carrera_hash == $carrera["__ID__"]){
return $carrera;
}
}
}
return false;
}
function decodificar_titulo($carrera_hash, $titulo_hash)
{
$carrera = $this->decodificar_carrera($carrera_hash);
$parametros = array();
if (!empty($carrera)){
$parametros = array('carrera' => $carrera['carrera'], 'plan' => $carrera['plan']);
}
$nuevo = array();
if (!empty($parametros)){
$titulos = catalogo::consultar('colacion', 'busca_titulos', $parametros);
if (!empty($titulos)){
foreach($titulos as $titulo){
if ($titulo_hash == $titulo["__ID__"]){
return $titulo['ID'];
}
}
}
}
return false;
}
function decodificar_pais($pais_hash){
$pais = catalogo::consultar('colacion', 'lista_paises');
if (!empty($pais)){
foreach($pais as $pais){
if ($pais_hash == $pais["__ID__"]){
return $pais;
}
}
}
return false;
}
function decodificar_provincia($pais_hash, $provincia_hash)
{
$pais = $this->decodificar_pais($pais_hash);
$nuevo = array();
if (!empty($pais)){
$parametros = array('cod_pais' => $pais['cod_pais']);
$provincias = catalogo::consultar('colacion', 'busca_provincia', $parametros);
if (!empty($provincias)){
foreach($provincias as $provincia){
if ($provincia_hash == $provincia["__ID__"]){
return $provincia['ID'];
}
}
}
}
return false;
}
}
Saludos