Foros del Web » Programando para Internet » Javascript »

Recordar valores en listas desplegables dependientes

Estas en el tema de Recordar valores en listas desplegables dependientes en el foro de Javascript en Foros del Web. Hola a todos, A ver si me podeis ayudar. Estoy realizando un buscador (con un formulario) que me muestre los resultados en la misma página. ...
  #1 (permalink)  
Antiguo 28/05/2011, 11:01
 
Fecha de Ingreso: mayo-2011
Mensajes: 3
Antigüedad: 13 años, 5 meses
Puntos: 0
Recordar valores en listas desplegables dependientes

Hola a todos,
A ver si me podeis ayudar.
Estoy realizando un buscador (con un formulario) que me muestre los resultados en la misma página. Quisiera que al realizar la búsqueda, los campos del formulario quedaran seleccionados con los criterios de esta.

Existen dos campos que son categorías y subcategorías. Los valores de subcategorias depende del valor que tome categoría.

Al realizar la busqueda, sí consigo que categoría quede seleccionada con ell valor que se eligió con la siguiente sentencia en php:

Código:
if( $rowcat->categoria==$_GET['categoria']) echo ' selected';
Pero mi problema es que no se cómo hacer que subcategoria quede seleccionada.

¿Pueden ayudarme?

Les dejo el código:

script para las listas desplegables

Código:
<script language="javascript">
			function ComponerLista(categoria) {
				document.forms.formulario.categoria.disabled = true;	//desactiva la lista de categorias para q no se pueda dar click mientras se carga
				document.forms.formulario.subcategoria.length = 0;		//deja vacía la lista de subcategorias (por si había algo seleccionado)
				CargarSubcategorias(categoria);	//Carga las Subcategorias que están en esa categoria y se le envía como parámetro la categoria
				document.forms.formulario.categoria.disabled = false;	//cargadas las subcategorias vuelve a permitir que demos click en a lista de categorias (por si queremos cambiar) activándola de nuevo
			}
			function CargarSubcategorias(categoria) {
				var subcategoria;
				document.forms.formulario.subcategoria.disabled=true;
				<?php
					$query = "SELECT categorias.*, subcategorias.* FROM categorias, subcategorias WHERE subcategorias.id=categorias.id";
					$tablasubcategorias = mysql_query($query, $con);	//selecciona las subcategorias
				?>
					if(categoria!="todas"){
						subcategoria = document.createElement("OPTION");
						subcategoria.text = 'Todas';
						subcategoria.value = 'todas';
						document.forms.formulario.subcategoria.options.add (subcategoria);	
					}
					if(categoria=="todas"){
						subcategoria = document.createElement("OPTION");
						subcategoria.text = 'Selecciona antes una categoría';
						subcategoria.value = 'ninguna';
						document.forms.formulario.subcategoria.options.add (subcategoria);	
					}
				<?php
					while ($rowsubcat = mysql_fetch_object ($tablasubcategorias)) {
				?>
						if(categoria == "<?php echo $rowsubcat->categoria; ?>") {
							<?php echo $rowsubcat->categoria; ?>
							subcategoria = document.createElement("OPTION");
							subcategoria.text = '<?php echo $rowsubcat->subcategoria; ?>';
							subcategoria.value = '<?php echo $rowsubcat->subcategoria; ?>';
							document.forms.formulario.subcategoria.options.add (subcategoria);	
						}
						
	 			<?php
					}
				?>
			document.forms.formulario.subcategoria.disabled=false;

			}
		</script>
buscar.php

Código:
	<form name="formulario" method="get" action="buscar.php">
			Categoría: 
			<select name="categoria" <? echo 'onchange="ComponerLista(document.forms.formulario.categoria[selectedIndex].value);"'; ?> >	<!--ComponerLista envía como parámetro el valor de la categoria seleccionada (selected) en la lista categoria que esta en el formulario en la pagina actual (document)-->
				<option value="todas" selected>Todas</option>
				<?php
					$query = "SELECT categoria FROM categorias";
					$tablacategorias=mysql_query($query, $con);	//Seleccionamos las categorias de la tabla categorias
					while($rowcat = mysql_fetch_object ($tablacategorias)){
				?>
						<option value="<?php echo $rowcat->categoria;?>"<? if( $rowcat->categoria==$_GET['categoria']) echo ' selected';?>><?php echo $rowcat->categoria;?></opcion>
				<?php
					}
				?>
			</select><br/>
			Subcategoría: 
			<select name="subcategoria">
				<option value="ninguna" selected>Selecciona antes una categoría</option>
			</select><br/>
		<input type="submit" name="enviar" value="Busca ofertas"/></p>
	</form>

Etiquetas: dependientes, desplegables, listas, recordar
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 04:07.