Foros del Web » Programando para Internet » Javascript » Frameworks JS »

combobox casero

Estas en el tema de combobox casero en el foro de Frameworks JS en Foros del Web. Quiero un combobox simple, sin necesidad de plugin. Lo que pensé es que con el evento change, mas algunas autocargas de la pagina podría solucionarlo. ...
  #1 (permalink)  
Antiguo 05/07/2010, 15:49
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años
Puntos: 101
combobox casero

Quiero un combobox simple, sin necesidad de plugin.

Lo que pensé es que con el evento change, mas algunas autocargas de la pagina podría solucionarlo. Así:

Código HTML:
$("form select#catLang").change(function(){
		
		selected = $(this).children("option:selected").text();
		$("form select[name=theTutorials]").load("administratorTools.php?langHandler="+selected+" #theTutorials");
		$("form select[name=tutorialTags]").load("administratorTools.php?langHandler="+selected+" #tutorialTags");
		$("form select[name=pluginTags]").load("administratorTools.php?langHandler="+selected+" #pluginsTags");
		$("form select[name=thePlugins]").load("administratorTools.php?langHandler="+selected+" #thePlugins");
		
	})
Es decir, trato de cargar las secciones de nuevo, en base a un combobox.

Este sistema se basa en el uso de una variable GET. Segun lo que elija en #catLang la consulta a mysql será distinta, y la prueba está en que estoy mandando una variable hacia el lado servidor: ?langHandler="+selected+"

La cuestion es que se recargan los demas select, pero vacios. Es decir, algo esta fallando. Pero que?
  #2 (permalink)  
Antiguo 05/07/2010, 16:10
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años
Puntos: 101
Respuesta: combobox casero

algunos cambios: no tenía definido un id en los selects como para filtrar los contenidos con .load()

Cita:
$("form select#catLang").change(function(){

selected = $(this).children("option:selected").text();
$("form select[name=theTutorials]").load("administratorTools.php #theTutorials", {langHandler:selected}, function(datos){alert(datos);
});
$("form select[name=tutorialTags]").load("administratorTools.php #tutorialTags", {langHandler:selected});
$("form select[name=pluginTags]").load("administratorTools.php #pluginsTags", {langHandler:selected});
$("form select[name=thePlugins]").load("administratorTools.php #thePlugins", {langHandler:selected});

})
Segun el manual (la API) load devuelve todo el documento, pero luego lo filtra y deja unicamente la seccion especificada por el filtro. Si hago un alert, me sale todo el documento aun sin filtrar y en la parte de mis selects no hay contenidos. Es decir, no se está haciendo la consulta a base de datos para tomar contenidos. Por que? Debería hacerse con o sin parametros que le pase, porque tienen un valor por defecto.
  #3 (permalink)  
Antiguo 05/07/2010, 19:35
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años
Puntos: 101
Respuesta: combobox casero

Ya está

El primer error fue creer que recibiria variables GET. Son POST, no importa lo que diga la API.

Luego, tenía un select cargandose dentro de otro, y eso anulaba el codigo. La solución fue hacer un span como wrapper.
Cita:
$("form select#catLang").change(function(){

selected = $(this).children("option:selected").val();
$("form select[name=theTutorials]").parent("span").load("administratorTools.php #theTutorials", {langHandler:selected});
$("form select[name=tutorialTags]").parent("span").load("administratorTools.php #tutorialTags", {langHandler:selected});
$("form select[name=pluginTags]").parent("span").load("administratorTools.php #pluginTags", {langHandler:selected});
$("form select[name=thePlugins]").parent("span").load("administratorTools.php #thePlugins", {langHandler:selected});

})

Etiquetas: casero, combobox
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:47.