fsanchezdsgn
Usuario habitual
Usuario habitual

Buenas a todos:

Tengo un form con un select. A continuación de éste, habría otro que depende del primero, es decir, en funcion de la opción seleccionada en el primer select, cambiará el contenido del segundo... Os muestro el código que estoy usando y que no funciona... al menos dinamicamente:

<script type="text/javascript">

 var cat;
cat = $("#categoria").val();
 if(cat == 'Hotel') {
 $('#add_form').append("Estrellas:<br><select id='puntuacion' name='puntuacion'><option>-----</option><option>1 Estrella</option><option>2 Estrellas</option><option>3 Estrellas</option><option>4 Estrellas</option><option>5 Estrellas</option></select><br><br>");
 }

 else if(cat == 'Restaurante') {
 $('#add_form').append("Tenedores:<br><select id='puntuacion' name='puntuacion'><option>-----</option><option>1 Tenedor</option><option>2 Tenedores</option><option>3 Tenedores</option><option>4 Tenedores</option><option>5 Tenedores</option></select><br><br>");
 }

 else {
 $('#add_form').append("Subcategor&iacute;a:<br><select id='subcategoria' name='subcategoria'><option>-----</option><option>Azafatas</option><option>Empresas de transporte</option><option>Catering</option><option>Audiovisuales</option><option>OPC</option><option>Publicidad y comunicaci&oacute;n</option><option>Agencias de viajes</option></select><br><br>");
 }

 </script>

Bueno, espero que alguien haya hecho esto antes y me pueda ayudar.

Gracias y un saludo!

Avatar Image
Come y duerme en el foro
Come y duerme en el foro
<script type="text/javascript">

 var cat;
cat = $("#categoria").val();
 if(cat == 'Hotel') {
 $('#add_form').append("Estrellas:<br><select id='puntuacion' name='puntuacion'><option>-----</option><option>1 Estrella</option><option>2 Estrellas</option><option>3 Estrellas</option><option>4 Estrellas</option><option>5 Estrellas</option></select><br><br>");
 }

 else if(cat == 'Restaurante') {
 $('#add_form').append("Tenedores:<br><select id='puntuacion' name='puntuacion'><option>-----</option><option>1 Tenedor</option><option>2 Tenedores</option><option>3 Tenedores</option><option>4 Tenedores</option><option>5 Tenedores</option></select><br><br>");
 }

 else {
 $('#add_form').append("Subcategor&iacute;a:<br><select id='subcategoria' name='subcategoria'><option>-----</option><option>Azafatas</option><option>Empresas de transporte</option><option>Catering</option><option>Audiovisuales</option><option>OPC</option><option>Publicidad y comunicaci&oacute;n</option><option>Agencias de viajes</option></select><br><br>");
 }

 </script>

Bueno, espero que alguien haya hecho esto antes y me pueda ayudar.

Gracias y un saludo!

Suponiendo que usas jQuery usa esto

<script type="text/javascript">
$(function(){
 var cat;
cat = $("#categoria").val();
 if(cat == 'Hotel') {

 $('#add_form').append("Estrellas:<br><select id='puntuacion' 
name='puntuacion'><option>-----</option><option>1 
Estrella</option><option>2 
Estrellas</option><option>3 
Estrellas</option><option>4 
Estrellas</option><option>5 
Estrellas</option></select><br><br>");
 }

 else if(cat == 'Restaurante') {

 $('#add_form').append("Tenedores:<br><select id='puntuacion' 
name='puntuacion'><option>-----</option><option>1 
Tenedor</option><option>2 
Tenedores</option><option>3 
Tenedores</option><option>4 
Tenedores</option><option>5 
Tenedores</option></select><br><br>");
 }

 else {

 $('#add_form').append("Subcategor&iacute;a:<br><select 
id='subcategoria' 
name='subcategoria'><option>-----</option><option>Azafatas</option><option>Empresas
 de 
transporte</option><option>Catering</option><option>Audiovisuales</option><option>OPC</option><option>Publicidad
 y comunicaci&oacute;n</option><option>Agencias de 
viajes</option></select><br><br>");
 }
});
 </script>

lo unico que hice fue agregar

$(function(){

tu script

});

fsanchezdsgn
Usuario habitual
Usuario habitual

Si, estoy usando jQuery, pero no me ha funcionado esa opción que me propones... ya encontré algo que mas o menos funciona, pero sigue teniendo un fallo. Este es el código:

var cat;
 cat = $("#categoria").val();

 $("#categoria").change( function () {

 alert(cat); 
 if(cat == 'Hotel') {
     $('#dim_form').append("Estrellas:<br><select id='puntuacion' name='puntuacion'><option>-----</option><option>1 Estrella</option><option>2 Estrellas</option><option>3 Estrellas</option><option>4 Estrellas</option><option>5 Estrellas</option></select><br><br>");
 }
 else if(cat == 'Restaurante') {
    $('#dim_form').append("Tenedores:<br><select id='puntuacion' name='puntuacion'><option>-----</option><option>1 Tenedor</option><option>2 Tenedores</option><option>3 Tenedores</option><option>4 Tenedores</option><option>5 Tenedores</option></select><br><br>");
 }
 else if(cat ==  'Servicios') {
     $('#dim_form').append("Subcategor&iacute;a:<br><select id='subcategoria' name='subcategoria'><option>-----</option><option>Azafatas</option><option>Empresas de transporte</option><option>Catering</option><option>Audiovisuales</option><option>OPC</option><option>Publicidad y comunicaci&oacute;n</option><option>Agencias de viajes</option></select><br><br>");
 }

 });

El problema está en que siempre mantiene el value del select de manera que, cuando hace el alert, elija la opción que elija, siempre me dice 'Hotel'... y entonces solamente me agrega la primera versión del 2º select. Pienso que debe haber alguna opción que no sea el $('select').val(); para extraer ese valor...

Gracias y un saludo!

fsanchezdsgn
Usuario habitual
Usuario habitual

CONSEGUIDO!!

$(document).ready(function(){

    var cat;

    $("#categoria").change( function () {
    
        cat = this.value;

        if(cat == 'Hotel') {
            $('#dim_form').append("Estrellas:<br><select id='puntuacion' name='puntuacion'><option>-----</option><option>1 Estrella</option><option>2 Estrellas</option><option>3 Estrellas</option><option>4 Estrellas</option><option>5 Estrellas</option></select><br><br>");
        }

        else if(cat == 'Restaurante') {
            $('#dim_form').append("Tenedores:<br><select id='puntuacion' name='puntuacion'><option>-----</option><option>1 Tenedor</option><option>2 Tenedores</option><option>3 Tenedores</option><option>4 Tenedores</option><option>5 Tenedores</option></select><br><br>");
        }

        else if(cat == 'Servicios') {
            $('#dim_form').append("Subcategor&iacute;a:<br><se lect id='subcategoria' name='subcategoria'><option>-----</option><option>Azafatas</option><option>Empresas de transporte</option><option>Catering</option><option>Audiovisuales</option><option>OPC</option><option>Publicidad y comunicaci&oacute;n</option><option>Agencias de viajes</option></select><br><br>");
        }

    });

 });


Lo único era meter el value del select dentro de la función .change

Gracias a todos!

Avatar Image
Come y duerme en el foro
Come y duerme en el foro

OK, que bueno que lo solucionaras, pero para recordar:

Casi todos los scripts en jQuery deben tener esta estructura

$(function(){

//tu script en jQuery

});

Para que el script se ejecute cuando el DOM este listo para ser manipulado

Esto lo mismo que decir:

$(document).ready(function(){

    //Tu script en jQuery

});

Es solo para recordarlo si alguien desea hacer algo en jQuery en un futuro, ya que lo hiciste ;-)

UN SALUDO...

fsanchezdsgn
Usuario habitual
Usuario habitual

aaah ok ok, sisi eso siempre lo hago... cuando me enseñaron a manejar jQuery me dijeron: SIEMPRE, para usar jQuery, hay que poner:

<script type="text/javascript">

$(document).ready( function() {

   el código

});

</script>

Además de obviamente enganchar el archivo .js de jQuery. Muchas gracias de todas maneras por recordar estas cosicas... aunque suelo omitirlo del código cuando pido ayuda porque nose, lo tengo asumido que siempre tiene que ir. Aunque lo que no sabia es que $(document).ready(){}); fuera igual que $(function(){}); No te irás a la cama sin aprender algo nuevo! ^_^

Gracias y un saludo!

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
No se han encontrado temas similares