[SOLUCIONADO] cascada con combos editables.

Hola!
Les comento que estoy trabajando sobre un ci donde en el mismo tengo dos combos, el ef_combo provincias y el ef_combo_editable localidades, a la vez quiero que este sea en cascada, el problema que tengo en el metodo del ef_combo_editable es que no esta recibiendo el id_provincia.
estos son mis metodos de la clase consultas:

function get_localidades_filtro($filtro = array())
{
	$where = '';
	if(isset($filtro['nombre'])){
		$filtro['nombre'] = dao_consultas::quote($filtro['nombre']);
		$where .= " localidades.nombre ILIKE '%{$filtro['nombre']}%'";
	}
	if(isset($filtro['id_provincia'])){
		$filtro['id_provincia'] = dao_consultas::es_numerico($filtro['id_provincia']);
		$where .= "AND localidades.id_provincia = {$filtro['id_provincia']}";
	}
	if(isset($filtro['where'])){
		$where .=  $filtro['where'];
	}
	$sql = "SELECT 
				id_localidad
				,id_provincia
				,nombre
			FROM 
				localidades
			WHERE			
				$where
			LIMIT 20	";
	return consultar_fuente($sql);		
}

function get_localidad($filtro = array())
{
	$where = '';
	if(isset($filtro['id_localidad'])){
		$filtro['id_localidad'] = dao_consultas::quote($filtro['id_localidad']);
		$where .= "AND localidades.id_localidad = {$filtro['id_localidad']}";
	}
	if(isset($filtro['where'])){
		$where .= 'AND' . $filtro['where'];
	}
	$sql = "SELECT 
				id_localidad 
				,id_provincia
				,nombre
			FROM 
				localidades
			WHERE $where";
	$result = consultar_fuente($sql);
	if (! empty($result)) {
		return $result[0]['nombre'];
	}
}	

Adjunto el efs del editor.

Desde ya muchas gracias.

Saludos,
sandra


Hola Sandra,

te hago unas consultas:

  • en que version puntual de Toba estas trabajando?
  • estos combos los tenes en un formulario, en un ML o en un filtro?

Por otro lado, las cascadas se pasan como parametros posicionales no como arreglos, osea en el metodo get_localidades_filtro vos recibirias como parametro actual el valor de id_provincia, no un arreglo con dicho valor dentro, entonces como estas preguntando explicitamente por una componente de un arreglo if(isset($filtro[‘id_provincia’])) y lo que te llega no es un arreglo nunca va a entrar a ese IF, quizas pasa por ahi el tema.

Saludos :slight_smile:

Hola Ricardo Dalinger

La vesrion de Toba que estoy usando es 1.4.8.
Me eh dado cuenta que estube errando en los filtros como me decis, de echo lo modifique los metodos y funciono.
Asi quedo :

function get_localidad_filtro($filtro=null, $id_provincia, $array=null)
{
	if (! isset($filtro) || trim($filtro) == '') {
		return array();
	}
	$where = '';
	if (isset($array)) {
		$array = quote($array);
		$where = "AND posicion =$array";
	}
	$filtro = quote("{$filtro}%");
	$sql = "SELECT 
				id_localidad
				,nombre
			FROM 
				localidades
			WHERE	
				nombre ILIKE $filtro
			AND 	id_provincia = $id_provincia	
				$where
			LIMIT 20
	";
	return consultar_fuente($sql);		
}

function get_localidad($id_localidad=null)
{
	if (! isset($id_localidad)) {
		return array();
	}
	$sql = "SELECT 
			id_localidad 
			,nombre
		FROM 
			localidades
		WHERE
			id_localidad = $id_localidad";
	$result = consultar_fuente($sql);
	if (! empty($result)) {
		return $result[0]['nombre'];
	}
}	

Desde ya muchas gracias!
Saludos