Problemas con combos en cascada

Buenas,

Hace poco estoy teniendo un inconveniente con los combos en cascada, en especial sobre el combo hijo. Esto se da cuando la clave es numérica, en estos casos no respeta el orden de las opciones tal cual fueron enviadas, quedando desordenadas las opciones y el “No-Selección” al final de la lista. Esto no tiene que ver con el navegador, ya que las pruebas siembre las hice en FF, lo que hace diferencia es enviar las claves numéricas (incluso entre comillas) o alfabéticas (solo letras). Para ejemplificar les paso el código que retorna los valores para dos combos (padre / hijo) :

NO FUNCIONA CORRECTAMENTE

	function get_valores_uno() 
	{
		return array(
			array('id_a'=>1, 'nombre_a'=>'A valor')
		,	array('id_a'=>2, 'nombre_a'=>'B valor')
		,	array('id_a'=>3, 'nombre_a'=>'C valor')
		);
	}
	
	function get_valores_dos($valor_padre)
	{
		$datos = array(
			array('id_b'=>3, 'nombre_b'=>'AAAAAAAAAA')
		,	array('id_b'=>1, 'nombre_b'=>'BBBBBBBBBB')
		,	array('id_b'=>2, 'nombre_b'=>'CCCCCCCCCC')
		);
		
		return $datos;
	}

FUNCIONA CORRECTAMENTE

	function get_valores_dos($valor_padre)
	{
		$datos = array(
			array('id_b'=>'C', 'nombre_b'=>'AAAAAAAAAA')
		,	array('id_b'=>'A', 'nombre_b'=>'BBBBBBBBBB')
		,	array('id_b'=>'B', 'nombre_b'=>'CCCCCCCCCC')
		);
		
		return $datos;
	}

La diferencia entre el que NO FUNCIONA y el que SI FUNCIONA es que los valores del campo clave “id_b”, en el primer ejemplo son numéricos y en el segundo ejemplo son alfabéticos; siempre teniendo presente que existe la opción “No-Selección”.

Esto lo probé en un TOBA 2.3 y siempre en FIREFOX

No se que es lo que se modificó de un tiempo al presente dado que antes no presentaba este inconveniente.

Desde ya agradezco cualquier idea sobre donde puede que este el problema.

Saludos.

José

Hola José,

desafortunadamente esto si tiene que ver con el navegador, ya que hasta la version 17 FF ordenaba los combos por sus descripciones, a diferencia de lo que hacia Chrome y Opera, a partir de la version siguiente… (depende como hayas actualizado… a mi me salto a la 21), adopto el nuevo comportamiento y ordena los combos en base al value del option y no en base al texto visible. Lo bueno de esto, es que al menos todos se comportan igual ahora.

Cuando se mezclan valores numericos con alfanumericos, se hace notorio este desfasaje… por eso el valor para no seleccionado (en este caso value = ‘nopar’) termina al fondo del conjunto, en lugar de estar primero.

En el trunk ya agregamos una solucion al tema, no lo mezclamos a las otras ramas debido a que cambia la implementacion en el cliente y ademas la estructura mediante la que se comunican los valores desde el servidor, lo cual haria que de buenas a primeras hubiera operaciones que dejaran de funcionar si existen cargas de combos realizadas de manera manual.

En la proxima version sale el cambio para solucionar este inconveniente.

Saludos

Buenas,

Richard muchas gracias por tu pronta respuesta.

Por lo que me comentas, entiendo que en una próxima versión este asunto estará contemplado en TOBA y dejaremos de tener este inconveniente, lo que no llego a comprender (estoy lento) es ¿que debo hacer con los proyecto que ya tengo funcionando?, algunos están en TOBA 2.3 y otros en TOBA 2.0…

nuevamente muchas gracias

Saludos

José

Hola Jose,

en lo posible, tratar de migrarlos a toba 2.4, no solo por este tema cosmetico, sino porque tambien se han ido arreglando bugs y agregando nuevas funciones, el paso desde la 2.3 deberia ser trivial… desde la 2.0, quizas requiera algo mas de trabajo, aunque no deberia ser tanto tampoco pero depende del tamaño del proyecto.

Saludos