Foros del Web » Programando para Internet » PHP »

Rellenar un select en funcion de lo elegido en otro select

Estas en el tema de Rellenar un select en funcion de lo elegido en otro select en el foro de PHP en Foros del Web. Buenas a todos!! Tengo un select con varias opciones y lo que quiero es que cuando el usuario elija una opción, dependiendo de lo elegido, ...
  #1 (permalink)  
Antiguo 12/05/2008, 03:27
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Rellenar un select en funcion de lo elegido en otro select

Buenas a todos!!

Tengo un select con varias opciones y lo que quiero es que cuando el usuario elija una opción, dependiendo de lo elegido, en otro select me salgan sus opciones. En lo que tengo el usuario puede elegir en el primer select pero luego no se me cambia el segundo select en función de lo elegido, sino que siempre me aparece el else del código. Os dejo lo que tengo hecho a ver si alguien me puede hechar una mano.

Código PHP:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<?php
    
require_once("conexion.inc.php");
    
$conexion mysql_connect($servidor$usuario$passwd);
    
$db mysql_select_db($basedatos$conexion);
    if (!
$conexion)
    {
        echo 
"Error al establecer la conexión con la base de datos: " mysql_error();
        exit();
    }
    if (!
$db)
    {
        echo 
"Error seleccionando la base de datos: " mysql_error();
        exit();
    }
?>

<body>
<table width="836" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="209" align="right">Categoría del producto:</td>
<td width="209" align="left">
<form name="formulario_categoria" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<select name="categoria">
    <option value="accesorios_viaje">Accesorios de viaje</option>
    <option value="casa_hogar">Casa y hogar</option>
    <option value="cuidado_personal">Cuidado personal</option>
    <option value="escritura">Escritura</option>
    <option value="herramientas_linternas">Herramientas y linternas</option>
    <option value="ocio">Ocio</option>
    <option value="oficina">Oficina</option>
    <option value="regalos">Regalos</option>
    <option value="sonido_imagen">Sonido e imagen</option>
    <option value="tiempo">Tiempo</option>
</select>
</form>
</td>
<td width="209" align="right">Subcategoría del producto:</td>
<td width="209" align="left">
<?php
    
if ($_POST['categoria'] == "accesorios_viaje")
    {
        echo 
"<form name=\"formulario_subcategoria\">";
        echo 
"<select name=\"subcategoria\">";
        echo 
"<option value=\"accesorios_viaje\">Accesorios de viaje</option>";
        echo 
"<option value=\"bolsa_compra\">Bolsa para la compra</option>";
        echo 
"<option value=\"bolsa_nino\">Bolsa para niño</option>";
        echo 
"<option value=\"bolsa_deporte\">Bolsa de deporte</option>";
        echo 
"<option value=\"bolsa_playa\">Bolsa de playa</option>";
        echo 
"<option value=\"bolsa_viaje\">Bolsa de viaje</option>";
        echo 
"<option value=\"bolso_mochila\">Bolsos y mochilas</option>";
        echo 
"<option value=\"chubasquero\">Chubasquero</option>";
        echo 
"<option value=\"cosmetica\">Cosmetica</option>";
        echo 
"<option value=\"macuto\">Macutos</option>";
        echo 
"<option value=\"maletas_carritos\">Maletas y carritos</option>";
        echo 
"<option value=\"monederos\">Monederos</option>";
        echo 
"<option value=\"paraguas\">Paraguas</option>";
        echo 
"<option value=\"rinonera\">Riñonera</option>";
        echo 
"</select>";
        echo 
"</form>";
    }
    elseif (
$_POST['categoria'] == "casa_hogar")
    {
        echo 
"<form name=\"formulario_subcategoria\">";
        echo 
"<select name=\"subcategoria\">";
        echo 
"<option value=\"accesorios_cocina\">Accesorios para cocina</option>";
        echo 
"<option value=\"accesorios_vino\">Accesorios para vino</option>";
        echo 
"<option value=\"ambiente\">Ambiente</option>";
        echo 
"<option value=\"botellas\">Botellas</option>";
        echo 
"<option value=\"decoracion\">Decoración</option>";
        echo 
"<option value=\"fotos\">Fotos</option>";
        echo 
"<option value=\"termos\">Termos</option>";
        echo 
"<option value=\"utensilios_cocina\">Utensilios de cocina</option>";
        echo 
"</select>";
        echo 
"</form>";
    }
    elseif (
$_POST['categoria'] == "cuidado_personal")
    {
        echo 
"<form name=\"formulario_subcategoria\">";
        echo 
"<select name=\"subcategoria\">";
        echo 
"<option value=\"accesorios_ropa\">Accesorios para ropa</option>";
        echo 
"<option value=\"bufandas\">Bufandas</option>";
        echo 
"<option value=\"complementos\">Complementos</option>";
        echo 
"<option value=\"estilo_mujer\">Estilo de mujer</option>";
        echo 
"<option value=\"gimnasia\">Gimnasia</option>";
        echo 
"<option value=\"relax\">Relax</option>";
        echo 
"<option value=\"salud\">Salud</option>";
        echo 
"<option value=\"set_bano\">Set de baño</option>";
        echo 
"<option value=\"set_costura\">Set de costura</option>";
        echo 
"<option value=\"set_limpieza_zapatos\">Set para limpieza de zapatos</option>";
        echo 
"<option value=\"set_manicura\">Set de manicura</option>";
        echo 
"<option value=\"sombreros\">Sombreros</option>";
        echo 
"</select>";
        echo 
"</form>";
    }
    elseif (
$_POST['categoria'] == "escritura")
    {
        echo 
"<form name=\"formulario_subcategoria\">";
        echo 
"<select name=\"subcategoria\">";
        echo 
"<option value=\"boligrafos\">Boligrafos</option>";
        echo 
"<option value=\"caja_pinturas\">Cajas de pinturas</option>";
        echo 
"<option value=\"punta_roll_on\">Con punta roll on</option>";
        echo 
"<option value=\"correctores_roll_on\">Correctores_roll_on</option>";
        echo 
"<option value=\"lapices\">Lápices</option>";
        echo 
"<option value=\"ninos\">Niños</option>";
        echo 
"<option value=\"rotuladores_marcadores\">Rotuladores y marcadores</option>";
        echo 
"<option value=\"set_regalo\">Set de regalo</option>";
        echo 
"</select>";
        echo 
"</form>";
    }
    elseif (
$_POST['categoria'] == "herramientas_linternas")
    {
        echo 
"<form name=\"formulario_subcategoria\">";
        echo 
"<select name=\"subcategoria\">";
        echo 
"<option value=\"accesorios_coche\">Accesorios para coche</option>";
        echo 
"<option value=\"bricolaje\">Bricolaje</option>";
        echo 
"<option value=\"linternas\">Linternas</option>";
        echo 
"</select>";
        echo 
"</form>";
    }
    elseif (
$_POST['categoria'] == "ocio")
    {
        echo 
"<form name=\"formulario_subcategoria\">";
        echo 
"<select name=\"subcategoria\">";
        echo 
"<option value=\"antiestres\">Antiestres</option>";
        echo 
"<option value=\"bicicletas_patinetes\">Bicicletas y patinetes</option>";
        echo 
"<option value=\"camping_picnic\">Camping y picnic</option>";
        echo 
"<option value=\"gafas_sol\">Gafas de sol</option>";
        echo 
"<option value=\"golf\">Golf</option>";
        echo 
"<option value=\"gorras_sombreros\">Gorras y sombreros</option>";
        echo 
"<option value=\"jardin\">Jardín</option>";
        echo 
"<option value=\"juegos\">Juegos</option>";
        echo 
"<option value=\"playa\">Playa</option>";
        echo 
"<option value=\"set_barbacoa\">Set para barbacoa</option>";
        echo 
"<option value=\"supervivencia\">Supervivencia</option>";
        echo 
"<option value=\"ventilador\">Ventilador</option>";
        echo 
"</select>";
        echo 
"</form>";
    }
    elseif (
$_POST['categoria'] == "oficina")
    {
        echo 
"<form name=\"formulario_subcategoria\">";
        echo 
"<select name=\"subcategoria\">";
        echo 
"<option value=\"accesorios_cd_mp3_mp4\">Accesorios para CDs</option>";
        echo 
"<option value=\"accesorios_libros\">Accesorios para libros</option>";
        echo 
"<option value=\"accesorios_ordenador\">Accesorios para ordenador</option>";
        echo 
"<option value=\"articulos_escritorio\">Articulos de escritorio</option>";
        echo 
"<option value=\"bolsa_ordenador_portatil\">Bolsa para ordenador portátil</option>";
        echo 
"<option value=\"lanyards\">Lanyards</option>";
        echo 
"<option value=\"laser\">Láser</option>";
        echo 
"<option value=\"libretas_bloc_notas\">Libretas y bloc de notas</option>";
        echo 
"<option value=\"memorias_usb\">Memorias_usb</option>";
        echo 
"<option value=\"portafolios_portadocumentos\">Portafolios y portadocumentos</option>";
        echo 
"<option value=\"portatarjetas\">Portatarjetas</option>";
        echo 
"<option value=\"telefono\">Teléfono</option>";
        echo 
"</select>";
        echo 
"</form>";
    }
    elseif (
$_POST['categoria'] == "regalos")
    {
        echo 
"<form name=\"formulario_subcategoria\">";
        echo 
"<select name=\"subcategoria\">";
        echo 
"<option value=\"caramelos\">Caramelos</option>";
        echo 
"<option value=\"llaveros\">Llaveros</option>";
        echo 
"<option value=\"peluches\">Peluches</option>";
        echo 
"</select>";
        echo 
"</form>";
    }
    elseif (
$_POST['categoria'] == "sonido_imagen")
    {
        echo 
"<form name=\"formulario_subcategoria\">";
        echo 
"<select name=\"subcategoria\">";
        echo 
"<option value=\"camara_marco_fotos_digital\">Camaras y marcos de fotos digital</option>";
        echo 
"<option value=\"grabador_voz\">Grabador de voz</option>";
        echo 
"<option value=\"pilas\">Pilas</option>";
        echo 
"<option value=\"radio\">Radio</option>";
        echo 
"<option value=\"reproductor_cd\">Reproductor de CDs</option>";
        echo 
"<option value=\"reproductor_mp3_mp4\">Reproductor MP3 y MP4</option>";
        echo 
"</select>";
        echo 
"</form>";
    }
    else
    {
        echo 
"<form name=\"formulario_subcategoria\">";
        echo 
"<select name=\"subcategoria\">";
        echo 
"<option value=\"cronometros_podometros\">Cronómetros y podómetros</option>";
        echo 
"<option value=\"estaciones_meteorologicas\">Estaciones meteorológicas</option>";
        echo 
"<option value=\"relojes\">Relojes</option>";
        echo 
"<option value=\"termometro\">Termómetro</option>";
        echo 
"</select>";
        echo 
"</form>";
    }
?>
</td>
</tr>
</table>
</body>
</html
Espero vuestras respuestas porque llevo varios días con ello y me estoy volviendo loca.

Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 12/05/2008, 03:46
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Rellenar un select en funcion de lo elegido en otro select

No creo que sea esto, pero prueba en vez de

elseif

a poner

else if

-------

De todas formas, estoy viendo que el select es fijo, es decir, no necesitas para nada ahi la base de datos, por lo que se puede hacer en javascript y de forma mas rapida.

Dame unos mins y te lo pongo en javaScript ;)
  #3 (permalink)  
Antiguo 12/05/2008, 04:06
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Rellenar un select en funcion de lo elegido en otro select

Muchas gracias por tu respuesta, miSko.

Lo del elseif no es, asi que espero tu respuesta con el JavaScript.
  #4 (permalink)  
Antiguo 12/05/2008, 04:09
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Rellenar un select en funcion de lo elegido en otro select

Vale, tu web quedaria asi :

Código PHP:


<html xmlns="http://www.w3.org/1999/xhtml">

    <
head>
        <
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <
title>Documento sin título</title>
    </
head>
    

    <
script>
        
        var 
accesorios_viaje '<select name="subcategoria">';
            
accesorios_viaje += '<option value="accesorios_viaje">Accesorios de viaje</option>';
            
accesorios_viaje += '<option value="bolsa_compra">Bolsa para la compra</option>';
            
accesorios_viaje += '<option value="bolsa_nino">Bolsa para niño</option>';
            
accesorios_viaje += '<option value="bolsa_deporte">Bolsa de deporte</option>';
            
accesorios_viaje += '<option value="bolsa_playa">Bolsa de playa</option>';
            
accesorios_viaje += '<option value="bolsa_viaje">Bolsa de viaje</option>';
            
accesorios_viaje += '<option value="bolso_mochila">Bolsos y mochilas</option>';
            
accesorios_viaje += '<option value="chubasquero">Chubasquero</option>';
            
accesorios_viaje += '<option value="cosmetica">Cosmetica</option>';
            
accesorios_viaje += '<option value="macuto">Macutos</option>';
            
accesorios_viaje += '<option value="maletas_carritos">Maletas y carritos</option>';
            
accesorios_viaje += '<option value="monederos">Monederos</option>';
            
accesorios_viaje += '<option value="paraguas">Paraguas</option>';
            
accesorios_viaje += '<option value="rinonera">Riñonera</option>';
            
accesorios_viaje += '</select>';
                
        var 
casa_hogar '<select name="subcategoria">';
            
casa_hogar += '<option value="accesorios_cocina">Accesorios para cocina</option>';
            
casa_hogar += '<option value="accesorios_vino">Accesorios para vino</option>';
            
casa_hogar += '<option value="ambiente">Ambiente</option>';
            
casa_hogar += '<option value="botellas">Botellas</option>';
            
casa_hogar += '<option value="decoracion">Decoración</option>';
            
casa_hogar += '<option value="fotos">Fotos</option>';
            
casa_hogar += '<option value="termos">Termos</option>';
            
casa_hogar += '<option value="utensilios_cocina">Utensilios de cocina</option>';
            
casa_hogar += '</select>';
                
        var 
cuidado_personal '<select name="subcategoria">';
            
cuidado_personal += '<option value="accesorios_ropa">Accesorios para ropa</option>';
            
cuidado_personal += '<option value="bufandas">Bufandas</option>';
            
cuidado_personal += '<option value="complementos">Complementos</option>';
            
cuidado_personal += '<option value="estilo_mujer">Estilo de mujer</option>';
            
cuidado_personal += '<option value="gimnasia">Gimnasia</option>';
            
cuidado_personal += '<option value="relax">Relax</option>';
            
cuidado_personal += '<option value="salud">Salud</option>';
            
cuidado_personal += '<option value="set_bano">Set de baño</option>';
            
cuidado_personal += '<option value="set_costura">Set de costura</option>';
            
cuidado_personal += '<option value="set_limpieza_zapatos">Set para limpieza de zapatos</option>';
            
cuidado_personal += '<option value="set_manicura">Set de manicura</option>';
            
cuidado_personal += '<option value="sombreros">Sombreros</option>';
            
cuidado_personal += '</select>';
                
        var 
escritura '<select name="subcategoria">';
            
escritura += '<option value="boligrafos">Boligrafos</option>';
            
escritura += '<option value="caja_pinturas">Cajas de pinturas</option>';
            
escritura += '<option value="punta_roll_on">Con punta roll on</option>';
            
escritura += '<option value="correctores_roll_on">Correctores_roll_on</option>';
            
escritura += '<option value="lapices">Lápices</option>';
            
escritura += '<option value="ninos">Niños</option>';
            
escritura += '<option value="rotuladores_marcadores">Rotuladores y marcadores</option>';
            
escritura += '<option value="set_regalo">Set de regalo</option>';
            
escritura += '</select>';
                
        var 
herramientas_linternas '<select name="subcategoria">';
            
herramientas_linternas += '<option value="accesorios_coche">Accesorios para coche</option>';
            
herramientas_linternas += '<option value="bricolaje">Bricolaje</option>';
            
herramientas_linternas += '<option value="linternas">Linternas</option>';
            
herramientas_linternas += '</select>';
                
        var 
ocio '<select name="subcategoria">';
            
ocio += '<option value="antiestres">Antiestres</option>';
            
ocio += '<option value="bicicletas_patinetes">Bicicletas y patinetes</option>';
            
ocio += '<option value="camping_picnic">Camping y picnic</option>';
            
ocio += '<option value="gafas_sol">Gafas de sol</option>';
            
ocio += '<option value="golf">Golf</option>';
            
ocio += '<option value="gorras_sombreros">Gorras y sombreros</option>';
            
ocio += '<option value="jardin">Jardín</option>';
            
ocio += '<option value="juegos">Juegos</option>';
            
ocio += '<option value="playa">Playa</option>';
            
ocio += '<option value="set_barbacoa">Set para barbacoa</option>';
            
ocio += '<option value="supervivencia">Supervivencia</option>';
            
ocio += '<option value="ventilador">Ventilador</option>';
            
ocio += '</select>';
                
        var 
oficina '<select name="subcategoria">';
            
oficina += '<option value="accesorios_cd_mp3_mp4">Accesorios para CDs</option>';
            
oficina += '<option value="accesorios_libros">Accesorios para libros</option>';
            
oficina += '<option value="accesorios_ordenador">Accesorios para ordenador</option>';
            
oficina += '<option value="articulos_escritorio">Articulos de escritorio</option>';
            
oficina += '<option value="bolsa_ordenador_portatil">Bolsa para ordenador portátil</option>';
            
oficina += '<option value="lanyards">Lanyards</option>';
            
oficina += '<option value="laser">Láser</option>';
            
oficina += '<option value="libretas_bloc_notas">Libretas y bloc de notas</option>';
            
oficina += '<option value="memorias_usb">Memorias_usb</option>';
            
oficina += '<option value="portafolios_portadocumentos">Portafolios y portadocumentos</option>';
            
oficina += '<option value="portatarjetas">Portatarjetas</option>';
            
oficina += '<option value="telefono">Teléfono</option>';
            
oficina += '</select>';
                
        var 
regalos '<select name="subcategoria">';
            
regalos += '<option value="caramelos">Caramelos</option>';
            
regalos += '<option value="llaveros">Llaveros</option>';
            
regalos += '<option value="peluches">Peluches</option>';
            
regalos += '</select>';
                
        var 
sonido_imagen '<select name="subcategoria">';
            
sonido_imagen += '<option value="camara_marco_fotos_digital">Camaras y marcos de fotos digital</option>';
            
sonido_imagen += '<option value="grabador_voz">Grabador de voz</option>';
            
sonido_imagen += '<option value="pilas">Pilas</option>';
            
sonido_imagen += '<option value="radio">Radio</option>';
            
sonido_imagen += '<option value="reproductor_cd">Reproductor de CDs</option>';
            
sonido_imagen += '<option value="reproductor_mp3_mp4">Reproductor MP3 y MP4</option>';
            
sonido_imagen += '</select>';
                
        var 
tiempo '<select name="subcategoria">';
            
tiempo += '<option value="cronometros_podometros">Cronómetros y podómetros</option>';
            
tiempo += '<option value="estaciones_meteorologicas">Estaciones meteorológicas</option>';
            
tiempo += '<option value="relojes">Relojes</option>';
            
tiempo += '<option value="termometro">Termómetro</option>';
            
tiempo += '</select>';
                
        function 
crearSubSelect()
        {
            var 
catElegida document.getElementById('categoria').value ;
            
            var 
codigo "" ;
            switch(
catElegida)
            {
                case 
"oficina":
                    
codigo oficina ;
                    break ;
                case 
"accesorios_viaje":
                    
codigo accesorios_viaje ;
                    break ;
                case 
"casa_hogar":
                    
codigo casa_hogar ;
                    break ;
                case 
"cuidado_personal":
                    
codigo cuidado_personal ;
                    break ;
                case 
"escritura":
                    
codigo escritura ;
                    break ;
                case 
"herramientas_linternas":
                    
codigo herramientas_linternas ;
                    break ;
                case 
"ocio":
                    
codigo ocio ;
                    break ;
                case 
"regalos":
                    
codigo regalos ;
                    break ;
                case 
"sonido_imagen":
                    
codigo sonido_imagen ;
                    break ;
                case 
"tiempo":
                    
codigo tiempo ;
                    break ;
            }
            
            
document.getElementById('subCategoria').innerHTML codigo ;
        }
                
    
</script>
            
            
    <body>
        <table width="836" cellpadding="0" cellspacing="0" border="0">
            <tr>
                <td width="209" align="right">Categoría del producto:</td>
                <td width="209" align="left">
                    <select name="categoria" id="categoria" onChange="crearSubSelect()" onClick="crearSubSelect()" onKeyPress="crearSubSelect()">
                        <option value="accesorios_viaje">Accesorios de viaje</option>
                        <option value="casa_hogar">Casa y hogar</option>
                        <option value="cuidado_personal">Cuidado personal</option>
                        <option value="escritura">Escritura</option>
                        <option value="herramientas_linternas">Herramientas y linternas</option>
                        <option value="ocio">Ocio</option>
                        <option value="oficina">Oficina</option>
                        <option value="regalos">Regalos</option>
                        <option value="sonido_imagen">Sonido e imagen</option>
                        <option value="tiempo">Tiempo</option>
                    </select>
                </td>
                <td width="209" align="right">Subcategoría del producto:</td>
                <td width="209" align="left" id="subCategoria"></td>
            </tr>
        </table>
        <script>crearSubSelect()</script>
    </body>
</html> 

ACABO D EDITAR EL POST: me faltaba lo de oficina y alguna tonteria por ahi ;)

Última edición por miSko; 12/05/2008 a las 04:26
  #5 (permalink)  
Antiguo 12/05/2008, 04:20
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Rellenar un select en funcion de lo elegido en otro select

Muchas gracias!!

Ya me funciona pero hay un pequeño problemilla. Lo que pasa es que desde el principio aparece en el primer select la opción de accesorios de viaje y en el segundo select no aparece nada y cuando elijo la opción tampoco me aparece nada en el segundo select.

Se podría hacer algo para que desde el inicio aparezca seleccionado en la primera lista accesorios de viaje y en la segunda lista sus categorias. Es que no sé nada de JavaScript y no sé si esto es posible.

Muchas gracias de nuevo.
  #6 (permalink)  
Antiguo 12/05/2008, 04:26
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Rellenar un select en funcion de lo elegido en otro select

Ya esta, ya lo he apañado arriba para que haga lo que quieres.

Bastaba con añadir un

<script>crearSubSelect()</script> Antes del </body> :D
  #7 (permalink)  
Antiguo 12/05/2008, 04:39
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Rellenar un select en funcion de lo elegido en otro select

Ya siento ser pesada pero me sigue pasando lo mismo. El desplegable de accesorios_viaje me sale vacío al principio y cuando luego lo elijo.

Muchas gracias por contestar.
  #8 (permalink)  
Antiguo 12/05/2008, 04:47
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Rellenar un select en funcion de lo elegido en otro select

Pues a mi me funciona de lujo el codigo que hay arriba :S

Prueba a copiarlo entero otra vez, pk lo estoy probando y me funciona tanto en Firefox como en Iexplorer :S
  #9 (permalink)  
Antiguo 12/05/2008, 04:50
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Rellenar un select en funcion de lo elegido en otro select

Ahora si que me funciona.

Muchisimas gracias por todo.
  #10 (permalink)  
Antiguo 12/05/2008, 04:52
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Rellenar un select en funcion de lo elegido en otro select

Para eso estamos ^_^
  #11 (permalink)  
Antiguo 13/05/2008, 01:27
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Rellenar un select en funcion de lo elegido en otro select

El valor del select de subCategoría, ¿cómo puedo recoger su valor para poder pasarselo a una consulta de la base de datos?
  #12 (permalink)  
Antiguo 13/05/2008, 01:48
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Rellenar un select en funcion de lo elegido en otro select

metes la tabla en un form, y creas un input type submit ^_^
__________________
» Presupuesto Pagina Web
  #13 (permalink)  
Antiguo 13/05/2008, 02:14
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Rellenar un select en funcion de lo elegido en otro select

Ya he probado lo que me has dicho pero no es lo que necesito.

Me explico, lo que necesito es conseguir coger el valor de la subcategoría pero en cuanto el usuario la escoge, sin necesidad de pulsar en ningún botón porque la consulta se me tiene que cargar más abajo en la misma página.

Te pongo el código para que veas lo que quiero.

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Demo para gestionar la base de datos</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>

<?php
    
require_once("conexion.inc.php");
    
$conexion mysql_connect($servidor$usuario$passwd);
    
$db mysql_select_db($basedatos$conexion);
    if (!
$conexion)
    {
        echo 
"Error al establecer la conexión con la base de datos: " mysql_error();
        exit();
    }
    if (!
$db)
    {
        echo 
"Error seleccionando la base de datos: " mysql_error();
        exit();
    }
?>

<script>

    var accesorios_viaje = '<select name="subcategoria">';
        accesorios_viaje += '<option value="accesorios_viaje">Accesorios de viaje</option>';
        accesorios_viaje += '<option value="bolsa_compra">Bolsa para la compra</option>';
        accesorios_viaje += '<option value="bolsa_nino">Bolsa para niño</option>';
        accesorios_viaje += '<option value="bolsa_deporte">Bolsa de deporte</option>';
        accesorios_viaje += '<option value="bolsa_playa">Bolsa de playa</option>';
        accesorios_viaje += '<option value="bolsa_viaje">Bolsa de viaje</option>';
        accesorios_viaje += '<option value="bolso_mochila">Bolsos y mochilas</option>';
        accesorios_viaje += '<option value="chubasquero">Chubasquero</option>';
        accesorios_viaje += '<option value="cosmetica">Cosmetica</option>';
        accesorios_viaje += '<option value="macuto">Macutos</option>';
        accesorios_viaje += '<option value="maletas_carritos">Maletas y carritos</option>';
        accesorios_viaje += '<option value="monederos">Monederos</option>';
        accesorios_viaje += '<option value="paraguas">Paraguas</option>';
        accesorios_viaje += '<option value="rinonera">Riñonera</option>';
        accesorios_viaje += '</select>';
        
    var casa_hogar = '<select name="subcategoria">';
        casa_hogar += '<option value="accesorios_cocina">Accesorios para cocina</option>';
        casa_hogar += '<option value="accesorios_vino">Accesorios para vino</option>';
        casa_hogar += '<option value="ambiente">Ambiente</option>';
        casa_hogar += '<option value="botellas">Botellas</option>';
        casa_hogar += '<option value="decoracion">Decoración</option>';
        casa_hogar += '<option value="fotos">Fotos</option>';
        casa_hogar += '<option value="termos">Termos</option>';
        casa_hogar += '<option value="utensilios_cocina">Utensilios de cocina</option>';
        casa_hogar += '</select>';
        
    var cuidado_personal = '<select name="subcategoria">';
        cuidado_personal += '<option value="accesorios_ropa">Accesorios para ropa</option>';
        cuidado_personal += '<option value="bufandas">Bufandas</option>';
        cuidado_personal += '<option value="complementos">Complementos</option>';
        cuidado_personal += '<option value="estilo_mujer">Estilo de mujer</option>';
        cuidado_personal += '<option value="gimnasia">Gimnasia</option>';
        cuidado_personal += '<option value="relax">Relax</option>';
        cuidado_personal += '<option value="salud">Salud</option>';
        cuidado_personal += '<option value="set_bano">Set de baño</option>';
        cuidado_personal += '<option value="set_costura">Set de costura</option>';
        cuidado_personal += '<option value="set_limpieza_zapatos">Set para limpieza de zapatos</option>';
        cuidado_personal += '<option value="set_manicura">Set de manicura</option>';
        cuidado_personal += '<option value="sombreros">Sombreros</option>';
        cuidado_personal += '</select>';

    var escritura = '<select name="subcategoria">';
        escritura += '<option value="boligrafos">Boligrafos</option>';
        escritura += '<option value="caja_pinturas">Cajas de pinturas</option>';
        escritura += '<option value="punta_roll_on">Con punta roll on</option>';
        escritura += '<option value="correctores_roll_on">Correctores_roll_on</option>';
        escritura += '<option value="lapices">Lápices</option>';
        escritura += '<option value="ninos">Niños</option>';
        escritura += '<option value="rotuladores_marcadores">Rotuladores y marcadores</option>';
        escritura += '<option value="set_regalo">Set de regalo</option>';
        escritura += '</select>';

    var herramientas_linternas = '<select name="subcategoria">';
        herramientas_linternas += '<option value="accesorios_coche">Accesorios para coche</option>';
        herramientas_linternas += '<option value="bricolaje">Bricolaje</option>';
        herramientas_linternas += '<option value="linternas">Linternas</option>';
        herramientas_linternas += '</select>';
                
    var ocio = '<select name="subcategoria">';
        ocio += '<option value="antiestres">Antiestres</option>';
        ocio += '<option value="bicicletas_patinetes">Bicicletas y patinetes</option>';
        ocio += '<option value="camping_picnic">Camping y picnic</option>';
        ocio += '<option value="gafas_sol">Gafas de sol</option>';
        ocio += '<option value="golf">Golf</option>';
        ocio += '<option value="gorras_sombreros">Gorras y sombreros</option>';
        ocio += '<option value="jardin">Jardín</option>';
        ocio += '<option value="juegos">Juegos</option>';
        ocio += '<option value="playa">Playa</option>';
        ocio += '<option value="set_barbacoa">Set para barbacoa</option>';
        ocio += '<option value="supervivencia">Supervivencia</option>';
        ocio += '<option value="ventilador">Ventilador</option>';
        ocio += '</select>';
                
    var oficina = '<select name="subcategoria">';
        oficina += '<option value="accesorios_cd_mp3_mp4">Accesorios para CDs</option>';
        oficina += '<option value="accesorios_libros">Accesorios para libros</option>';
        oficina += '<option value="accesorios_ordenador">Accesorios para ordenador</option>';
        oficina += '<option value="articulos_escritorio">Articulos de escritorio</option>';
        oficina += '<option value="bolsa_ordenador_portatil">Bolsa para ordenador portátil</option>';
        oficina += '<option value="lanyards">Lanyards</option>';
        oficina += '<option value="laser">Láser</option>';
        oficina += '<option value="libretas_bloc_notas">Libretas y bloc de notas</option>';
        oficina += '<option value="memorias_usb">Memorias_usb</option>';
        oficina += '<option value="portafolios_portadocumentos">Portafolios y portadocumentos</option>';
        oficina += '<option value="portatarjetas">Portatarjetas</option>';
        oficina += '<option value="telefono">Teléfono</option>';
        oficina += '</select>';
                
    var regalos = '<select name="subcategoria">';
        regalos += '<option value="caramelos">Caramelos</option>';
        regalos += '<option value="llaveros">Llaveros</option>';
        regalos += '<option value="peluches">Peluches</option>';
        regalos += '</select>';
                
    var sonido_imagen = '<select name="subcategoria">';
        sonido_imagen += '<option value="camara_marco_fotos_digital">Camaras y marcos de fotos digital</option>';
        sonido_imagen += '<option value="grabador_voz">Grabador de voz</option>';
        sonido_imagen += '<option value="pilas">Pilas</option>';
        sonido_imagen += '<option value="radio">Radio</option>';
        sonido_imagen += '<option value="reproductor_cd">Reproductor de CDs</option>';
        sonido_imagen += '<option value="reproductor_mp3_mp4">Reproductor MP3 y MP4</option>';
        sonido_imagen += '</select>';
                
    var tiempo = '<select name="subcategoria">';
        tiempo += '<option value="cronometros_podometros">Cronómetros y podómetros</option>';
        tiempo += '<option value="estaciones_meteorologicas">Estaciones meteorológicas</option>';
        tiempo += '<option value="relojes">Relojes</option>';
        tiempo += '<option value="termometro">Termómetro</option>';
        tiempo += '</select>';

    function crearSubSelect()
    {
        var catElegida = document.getElementById('categoria').value ;
        var codigo = "" ;
        switch(catElegida)
        {
            case "oficina":
                codigo = oficina ;
                break ;
            case "accesorios_viaje":
                codigo = accesorios_viaje ;
                break ;
            case "casa_hogar":
                codigo = casa_hogar ;
                break ;
            case "cuidado_personal":
                codigo = cuidado_personal ;
                break ;
            case "escritura":
                codigo = escritura ;
                break ;
            case "herramientas_linternas":
                codigo = herramientas_linternas ;
                break ;
            case "ocio":
                codigo = ocio ;
                break ;
            case "regalos":
                codigo = regalos ;
                break ;
            case "sonido_imagen":
                codigo = sonido_imagen ;
                break ;
            case "tiempo":
                codigo = tiempo ;
                break ;
        }
        document.getElementById('subCategoria').innerHTML = codigo ;
    }

</script>
Te lo pongo en dos partes porque no me deja ponerlo todo junto.
  #14 (permalink)  
Antiguo 13/05/2008, 02:16
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Rellenar un select en funcion de lo elegido en otro select

Continuación del código.

Código PHP:
<body bgcolor="#F5F5F5" topmargin="10">
    <table width="836" cellpadding="0" cellspacing="0" border="0">
        <tr>
            <td colspan="8">
                <iframe name="navigation" src="cabecera.html" frameborder="0" width="836" scrolling="no" height="118"></iframe>
            </td>
        </tr>
        <tr>
            <td colspan="8" width="836" height="8" bgcolor="#FFFFFF"></td>
        </tr>
        <tr>
            <td colspan="8" width="836" height="22" bgcolor="#F5F5F5"></td>
        </tr>
        <tr>
            <td colspan="8" height="29" bgcolor="#F5F5F5">
                <img src="imagenes/gestionar.gif" width="183" height="29" />
            </td>
        </tr>
        <tr>
            <td colspan="8" width="836" height="22" bgcolor="#F5F5F5">
        </tr>
        <tr>
            <td colspan="8" width="836" height="8" bgcolor="#FFFFFF"></td>
        </tr>
        <tr bgcolor="#FFFFFF">
            <td colspan="2" width="209" align="right" style="padding-right:5px">Categoría del producto:</td>
            <td colspan="2" width="209" align="left">
                <select name="categoria" id="categoria" onChange="crearSubSelect()" onClick="crearSubSelect()" onKeyPress="crearSubSelect()">
                    <option value="accesorios_viaje">Accesorios de viaje</option>
                    <option value="casa_hogar">Casa y hogar</option>
                    <option value="cuidado_personal">Cuidado personal</option>
                    <option value="escritura">Escritura</option>
                    <option value="herramientas_linternas">Herramientas y linternas</option>
                    <option value="ocio">Ocio</option>
                    <option value="oficina">Oficina</option>
                    <option value="regalos">Regalos</option>
                    <option value="sonido_imagen">Sonido e imagen</option>
                    <option value="tiempo">Tiempo</option>
                </select>
            </td>
            <td colspan="2" width="209" align="right" style="padding-right:5px">Subcategoría del producto:</td>
            <td colspan="2" width="209" align="left" id="subCategoria"></td>
        </tr>
        <tr bgcolor="#FFFFFF">
            <td colspan="8" width="836" height="16"></td>
        </tr>
        <tr align="right" bgcolor="#FFFFFF">
            <form name="boton" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
                  <td colspan="2" width="209"><input name="insertar" type="button" id="insertar" value="Insertar" /></td>
                <td colspan="2" width="209"><input name="modificar" type="button" id="modificar" value="Modificar" /></td>
                <td colspan="2" width="209"><input name="borrar" type="button" id="borrar" value="Borrar" /></td>
            </form>
            <td colspan="2" width="209"></td>
        </tr>
        <tr bgcolor="#FFFFFF">
            <td colspan="8" width="836" height="16"></td>
        </tr>
        <?php
        
if ($_POST['insertar'])
        {
            echo 
"<tr bgcolor=\"#FFFFFF\">";
            echo 
"<td colspan=2 width=209>Referencia:</td>";
            echo 
"<td colspan=2 width=209><input name=\"referencia\" type=\"text\" id=\"referencia\" size=\"20\" style=\"background-color:#F5F5F5\" /></td>";
            echo 
"<td colspan=2 width=209>Código de marcaje:</td>";
            echo 
"<td colspan=2 width=209><input name=\"codigo_marcaje\" type=\"text\" id=\"codigo_marcaje\" size=\"20\" style=\"background-color:#F5F5F5\" /></td>";
            echo 
"</tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\"><td colspan=\"8\" width=\"836\" height=\"8\"></td></tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\">";
            echo 
"<td colspan=2 width=209>Descripción:</td>";
            echo 
"<td colspan=2 width=209><input name=\"descripcion\" type=\"text\" id=\"descripcion\" size=\"20\" style=\"background-color:#F5F5F5\" /></td>";
            echo 
"<td colspan=2 width=209>Medida de marcaje:</td>";
            echo 
"<td colspan=2 width=209><input name=\"medida_marcaje\" type=\"text\" id=\"medida_marcaje\" size=\"20\" style=\"background-color:#F5F5F5\" /></td>";
            echo 
"</tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\"><td colspan=\"8\" width=\"836\" height=\"8\"></td></tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\">";
            echo 
"<td colspan=2 width=209>Colores:</td>";
            echo 
"<td colspan=2 width=209><input name=\"colores\" type=\"text\" id=\"colores\" size=\"20\" style=\"background-color:#F5F5F5\" /></td>";
            echo 
"<td colspan=2 width=209>Colores máximos de marcaje:</td>";
            echo 
"<td colspan=2 width=209><input name=\"colores_maximos\" type=\"text\" id=\"colores_maximos\" size=\"20\" style=\"background-color:#F5F5F5\" /></td>";
            echo 
"</tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\"><td colspan=\"8\" width=\"836\" height=\"8\"></td></tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\">";
            echo 
"<td colspan=2 width=209>Precio según las unidades:</td>";
            echo 
"<td colspan=2 width=209></td>";
            echo 
"<td colspan=2 width=209>Incremento:</td>";
            echo 
"<td colspan=2 width=209><input name=\"incremento\" type=\"text\" id=\"incremento\" size=\"20\" style=\"background-color:#F5F5F5\" /></td>";
            echo 
"</tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\"><td colspan=\"8\" width=\"836\" height=\"8\"></td></tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\">";
            echo 
"<td>25</td>";
            echo 
"<td><input name=\"25\" type=\"text\" id=\"25\" size=\"20\" style=\"background-color:#F5F5F5\" /></td>";
            echo 
"<td>100</td>";
            echo 
"<td><input name=\"100\" type=\"text\" id=\"100\" size=\"20\" style=\"background-color:#F5F5F5\" /></td>";
            echo 
"<td>500</td>";
            echo 
"<td><input name=\"500\" type=\"text\" id=\"500\" size=\"20\" style=\"background-color:#F5F5F5\" /></td>";
            echo 
"<td>5000</td>";
            echo 
"<td><input name=\"5000\" type=\"text\" id=\"5000\" size=\"20\" style=\"background-color:#F5F5F5\" /></td>";
            echo 
"</tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\"><td colspan=\"8\" width=\"836\" height=\"8\"></td></tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\">";
            echo 
"<td>50</td>";
            echo 
"<td><input name=\"50\" type=\"text\" id=\"50\" size=\"20\" style=\"background-color:#F5F5F5\" /></td>";
            echo 
"<td>250</td>";
            echo 
"<td><input name=\"250\" type=\"text\" id=\"250\" size=\"20\" style=\"background-color:#F5F5F5\" /></td>";
            echo 
"<td>1000</td>";
            echo 
"<td><input name=\"1000\" type=\"text\" id=\"1000\" size=\"20\" style=\"background-color:#F5F5F5\" /></td>";
            echo 
"<td>10000</td>";
            echo 
"<td><input name=\"10000\" type=\"text\" id=\"10000\" size=\"20\" style=\"background-color:#F5F5F5\" /></td>";
            echo 
"</tr>";
        }
Todavía no me entra, sigue más abajo.
  #15 (permalink)  
Antiguo 13/05/2008, 02:19
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Rellenar un select en funcion de lo elegido en otro select

Código PHP:
elseif ($_POST['modificar'])
        {
            
$resultado mysql_query("SELECT * FROM " $_POST["subCategoria"]);
            echo 
"<tr bgcolor=\"#FFFFFF\">";
            echo 
"<td colspan=2 width=209>Referencia:</td>";
            echo 
"<td colspan=2 width=209><select name=\"referencia\">";
            while (
$fila mysql_fetch_array($resultado))
            {
                echo 
"<option value=\"" $fila["referencia"] . "\">" $fila["referencia"] . "</option></select>";
            }
            echo 
"</td>";
            
$producto mysql_query("SELECT * FROM " $_POST["subCategoria"] . " WHERE referencia = " $_POST["referencia"]);
            
$elProducto mysql_fetch_array($producto);
            echo 
"<td colspan=2 width=209>Código de marcaje:</td>";
            echo 
"<td colspan=2 width=209><input name=\"codigo_marcaje\" type=\"text\" id=\"codigo_marcaje\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["codigo_marcaje"] . "</td>";
            echo 
"</tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\"><td colspan=\"8\" width=\"836\" height=\"8\"></td></tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\">";
            echo 
"<td colspan=2 width=209>Descripción:</td>";
            echo 
"<td colspan=2 width=209><input name=\"descripcion\" type=\"text\" id=\"descripcion\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["descripcion"] . "</td>";
            echo 
"<td colspan=2 width=209>Medida de marcaje:</td>";
            echo 
"<td colspan=2 width=209><input name=\"medida_marcaje\" type=\"text\" id=\"medida_marcaje\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["medida_marcaje"] . "</td>";
            echo 
"</tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\"><td colspan=\"8\" width=\"836\" height=\"8\"></td></tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\">";
            echo 
"<td colspan=2 width=209>Colores:</td>";
            echo 
"<td colspan=2 width=209><input name=\"colores\" type=\"text\" id=\"colores\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["colores"] . "</td>";
            echo 
"<td colspan=2 width=209>Colores máximos de marcaje:</td>";
            echo 
"<td colspan=2 width=209><input name=\"colores_maximos\" type=\"text\" id=\"colores_maximos\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["colores_maximos"] . "</td>";
            echo 
"</tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\"><td colspan=\"8\" width=\"836\" height=\"8\"></td></tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\">";
            echo 
"<td colspan=2 width=209>Precio según las unidades:</td>";
            echo 
"<td colspan=2 width=209></td>";
            echo 
"<td colspan=2 width=209>Incremento:</td>";
            echo 
"<td colspan=2 width=209><input name=\"incremento\" type=\"text\" id=\"incremento\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["incremento"] . "</td>";
            echo 
"</tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\"><td colspan=\"8\" width=\"836\" height=\"8\"></td></tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\">";
            echo 
"<td>25</td>";
            echo 
"<td><input name=\"25\" type=\"text\" id=\"25\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["25"] . "</td>";
            echo 
"<td>100</td>";
            echo 
"<td><input name=\"100\" type=\"text\" id=\"100\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["100"] . "</td>";
            echo 
"<td>500</td>";
            echo 
"<td><input name=\"500\" type=\"text\" id=\"500\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["500"] . "</td>";
            echo 
"<td>5000</td>";
            echo 
"<td><input name=\"5000\" type=\"text\" id=\"5000\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["5000"] . "</td>";
            echo 
"</tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\"><td colspan=\"8\" width=\"836\" height=\"8\"></td></tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\">";
            echo 
"<td>50</td>";
            echo 
"<td><input name=\"50\" type=\"text\" id=\"50\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["50"] . "</td>";
            echo 
"<td>250</td>";
            echo 
"<td><input name=\"250\" type=\"text\" id=\"250\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["250"] . "</td>";
            echo 
"<td>1000</td>";
            echo 
"<td><input name=\"1000\" type=\"text\" id=\"1000\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["1000"] . "</td>";
            echo 
"<td>10000</td>";
            echo 
"<td><input name=\"10000\" type=\"text\" id=\"10000\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["10000"] . "</td>";
            echo 
"</tr>";
        }
        else
        {
            
$resultado mysql_query("SELECT * FROM " $_POST["subCategoria"]);
            echo 
"<tr bgcolor=\"#FFFFFF\">";
            echo 
"<td colspan=2 width=209>Referencia:</td>";
            echo 
"<td colspan=2 width=209><select name=\"referencia\">";
            while (
$fila mysql_fetch_array($resultado))
            {
                echo 
"<option value=\"" $fila["referencia"] . "\">" $fila["referencia"] . "</option></select>";
            }
            echo 
"</td>";
            
$producto mysql_query("SELECT * FROM " $_POST["subCategoria"] . " WHERE referencia = " $_POST["referencia"]);
            
$elProducto mysql_fetch_array($producto);
            echo 
"<td colspan=2 width=209>Código de marcaje:</td>";
            echo 
"<td colspan=2 width=209><input name=\"codigo_marcaje\" type=\"text\" id=\"codigo_marcaje\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["codigo_marcaje"] . "</td>";
            echo 
"</tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\"><td colspan=\"8\" width=\"836\" height=\"8\"></td></tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\">";
            echo 
"<td colspan=2 width=209>Descripción:</td>";
            echo 
"<td colspan=2 width=209><input name=\"descripcion\" type=\"text\" id=\"descripcion\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["descripcion"] . "</td>";
            echo 
"<td colspan=2 width=209>Medida de marcaje:</td>";
            echo 
"<td colspan=2 width=209><input name=\"medida_marcaje\" type=\"text\" id=\"medida_marcaje\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["medida_marcaje"] . "</td>";
            echo 
"</tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\"><td colspan=\"8\" width=\"836\" height=\"8\"></td></tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\">";
            echo 
"<td colspan=2 width=209>Colores:</td>";
            echo 
"<td colspan=2 width=209><input name=\"colores\" type=\"text\" id=\"colores\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["colores"] . "</td>";
            echo 
"<td colspan=2 width=209>Colores máximos de marcaje:</td>";
            echo 
"<td colspan=2 width=209><input name=\"colores_maximos\" type=\"text\" id=\"colores_maximos\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["colores_maximos"] . "</td>";
            echo 
"</tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\"><td colspan=\"8\" width=\"836\" height=\"8\"></td></tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\">";
            echo 
"<td colspan=2 width=209>Precio según las unidades:</td>";
            echo 
"<td colspan=2 width=209></td>";
            echo 
"<td colspan=2 width=209>Incremento:</td>";
            echo 
"<td colspan=2 width=209><input name=\"incremento\" type=\"text\" id=\"incremento\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["incremento"] . "</td>";
            echo 
"</tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\"><td colspan=\"8\" width=\"836\" height=\"8\"></td></tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\">";
            echo 
"<td>25</td>";
            echo 
"<td><input name=\"25\" type=\"text\" id=\"25\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["25"] . "</td>";
            echo 
"<td>100</td>";
            echo 
"<td><input name=\"100\" type=\"text\" id=\"100\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["100"] . "</td>";
            echo 
"<td>500</td>";
            echo 
"<td><input name=\"500\" type=\"text\" id=\"500\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["500"] . "</td>";
            echo 
"<td>5000</td>";
            echo 
"<td><input name=\"5000\" type=\"text\" id=\"5000\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["5000"] . "</td>";
            echo 
"</tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\"><td colspan=\"8\" width=\"836\" height=\"8\"></td></tr>";
            echo 
"<tr bgcolor=\"#FFFFFF\">";
            echo 
"<td>50</td>";
            echo 
"<td><input name=\"50\" type=\"text\" id=\"50\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["50"] . "</td>";
            echo 
"<td>250</td>";
            echo 
"<td><input name=\"250\" type=\"text\" id=\"250\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["250"] . "</td>";
            echo 
"<td>1000</td>";
            echo 
"<td><input name=\"1000\" type=\"text\" id=\"1000\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["1000"] . "</td>";
            echo 
"<td>10000</td>";
            echo 
"<td><input name=\"10000\" type=\"text\" id=\"10000\" size=\"20\" style=\"background-color:#F5F5F5\" />" $elProducto["10000"] . "</td>";
            echo 
"</tr>";
        }
        
?>
        <tr bgcolor="#FFFFFF">
            <td colspan="8" width="836" height="16"></td>
        </tr>
        <tr>
            <td colspan="8" width="836" height="22" bgcolor="#F5F5F5">
        </tr>
    </table>
    <script>crearSubSelect()</script>
</body>
</html> 
Ya siento tenerlo que poner así pero es que no me deja ponerlo todo junto.
De los botones no consigo que me coja el if que es sino que siempre me coge el else. Es otra tarea pendiente.
  #16 (permalink)  
Antiguo 13/05/2008, 02:54
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Rellenar un select en funcion de lo elegido en otro select

Metes la tabla en un FORM y le pones de ID a ese form este nombre 'EnvioSubCategoria'

es decir

<form id="EnvioSubCategoria" action="loquequeiras.php">

TABLA TAL Y TAL

</form>


y en el select de subcategoria le añades esto a las etiquetas

<select id="subCategoria" onClick="document.getElementById('EnvioSubCategori a').submit()">

con eso al hacer click, se enviara el formulario xD
__________________
» Presupuesto Pagina Web
  #17 (permalink)  
Antiguo 13/05/2008, 03:25
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Rellenar un select en funcion de lo elegido en otro select

Ya lo he hecho pero ahora me ha dejado de funcionar porque ya no me muestra la tabla de subcategoría .

Me trae por la calle de la amargura y porque lo necesito que si no lo había dejado ya hace tiempo porque me estoy volviendo loca.
  #18 (permalink)  
Antiguo 13/05/2008, 03:34
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Rellenar un select en funcion de lo elegido en otro select

Vale aqui tienes el codigo entero :

http://almarcha.info/codigo.txt

Es la linea 166 la que tienes q modificar, q es el FORM q envias
__________________
» Presupuesto Pagina Web
  #19 (permalink)  
Antiguo 13/05/2008, 04:00
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Rellenar un select en funcion de lo elegido en otro select

Muchas gracias de nuevo!!
Ya funciona de nuevo.
  #20 (permalink)  
Antiguo 14/05/2008, 03:19
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Rellenar un select en funcion de lo elegido en otro select

Hola de nuevo!!

Lo de la lista desplegable ya me funciona pero me pasa una cosa. Cada vez que pincho en la segunda lista desplegable no me da tiempo a elegir la subcategoría porque se me vuelve a cargar la página, simplemente con el click que se hace para desplegar la lista.

He pensado una solución pero no sé si es posible, os explico. En vez de que se envíe la información a través del formulario, que se guarde el valor de lo que selecciona el usuario en una variable en la parte de javascript y luego yo recuperarla dentro de la misma página con php. ¿Se puede? Si es posible, ¿cómo guardo lo seleccionado por el usuario en la lista desplegable? Si no es posible, ¿cómo puedo hacer para que no me pase eso?

Espero haberme explicado bien.

Muchas gracias.
  #21 (permalink)  
Antiguo 14/05/2008, 03:40
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Rellenar un select en funcion de lo elegido en otro select

he actualizado el Archivo :

http://almarcha.info/codigo.txt

a ver si ahora te tira ;)
__________________
» Presupuesto Pagina Web
  #22 (permalink)  
Antiguo 14/05/2008, 03:55
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Rellenar un select en funcion de lo elegido en otro select

Muchisimas gracias, miSko!! Eres un crack .

Ahora tengo otra pregunta. Cuando yo recupero lo seleccionado por el usuario, lo hago con $_POST["subcategoria"] y también lo he intentado con $_POST["subCategoriaSeleccionada"] dentro de una consulta sql pero no me coge nada. ¿Puede ser que esté recuperando mal el valor seleccionado?
  #23 (permalink)  
Antiguo 14/05/2008, 04:12
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Rellenar un select en funcion de lo elegido en otro select

Se supone q con

$_POST['subcategoria'] deberia funcionar ^_^

EDITADO: estoy viendo tu codigo, y tienes subCategoria, y la C tiene q ser minuscula, no mayuscula :]
__________________
» Presupuesto Pagina Web
  #24 (permalink)  
Antiguo 14/05/2008, 04:16
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Rellenar un select en funcion de lo elegido en otro select

Pues voy a seguir probando a ver si consigo terminar la página que llevo ni sé el tiempo con ella.

Muchas gracias por todo!!

EDITADO: Ya lo he cambiado pero nada, no sé porque será porque yo también creo que debería de funcionar.
  #25 (permalink)  
Antiguo 14/05/2008, 07:46
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Re: Rellenar un select en funcion de lo elegido en otro select

Yo meteria los datos en una base de datos...

y le llamas con ajax.. enviando el ID de la categoria seleccionada para que te traiga las subcategorias.. asi de paso cuando quieras agregar una categoria o subcategoria no tenes que tocar el codigo solo la insertas en tu base de datos..
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #26 (permalink)  
Antiguo 16/05/2008, 01:12
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Rellenar un select en funcion de lo elegido en otro select

El problema es que no sé absolutamente nada de Ajax pero muchas gracias por tu respuesta era buena la idea de meterlo en la base de datos.
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 14:37.