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:
Pero mi problema es que no se cómo hacer que subcategoria quede seleccionada.if( $rowcat->categoria==$_GET['categoria']) echo ' selected';
¿Pueden ayudarme?
Les dejo el código:
script para las listas desplegables
Código:
buscar.php<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>
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>