Foros del Web » Programando para Internet » Jquery »

Jquery a partir de unos radios rellenar un select

Estas en el tema de Jquery a partir de unos radios rellenar un select en el foro de Jquery en Foros del Web. Mil gracias Dany_s sino es por ti no lo termino, gran ayudante q me ha sacado de este apuro, ya lo tengo funcionando a las ...
  #1 (permalink)  
Antiguo 29/03/2010, 11:38
 
Fecha de Ingreso: marzo-2008
Mensajes: 82
Antigüedad: 16 años
Puntos: 0
Jquery a partir de unos radios rellenar un select

Mil gracias Dany_s sino es por ti no lo termino, gran ayudante q me ha sacado de este apuro, ya lo tengo funcionando a las mil maravillas tal y como quería, para el q le pueda servir lo pongo aqui, creo q se puede evitar llamar a dos php distintos para recuperar los datos pero lo dejo para mas adelante.
El script lo que hace es que a partir de la selecion de un radiobutton carga el contenido de un select y a partir del primer valor de este select carga un segundo estando los dos asi encadenados, y luego la funcion q segun cambies el primer select cambia el segundo.

Código PHP:
$(document).ready(function(){
                         $(
":radio").click(function () {
            
str = $("input[name='clase']:checked").val();
            
            
            $(
"#Provincias").html('<option selected="selected" value="0">Cargando...</option>')
            $.
post("modules/combo_prov.php",{ 
                 
tipostr }  // Tipo seleccionado
                
,function(data){
                $(
"#Provincias").html(data);
                
buscarLocalidades();
                
            });
            function 
buscarLocalidades(){
            
valor = $("#Provincias").val(); // Tomo el valor de la opción seleccionada
            //$("#sty").addClass('div').text(valor);    
                
            
$("#Poblacion").html('<option selected="selected" value="0">Cargando...</option>')
            $.
post("modules/combo_pob.php",{ 
                 
tipostr,        // Tipo selecionado
                 
poblavalor}  // Valor seleccionado
                
,function(data){
                $(
"#Poblacion").html(data);
            });
            }
        });
                               
    $(
"#Provincias").change(function(){
        
str = $("input[name='clase']:checked").val(); // Tomo el valor del tipo seleccionado
        
valor = $("#Provincias").val();    // Tomo el valor de la opción seleccionada

            
$("#Poblacion").html('<option selected="selected" value="0">Cargando...</option>')
            
            
// Llamamos a pagina de combo_prob.php donde ejecuto las consultas para llenar los combos
                
$.post("modules/combo_pob.php",{
                        
tipostr// Tipo selecionado
                         
poblavalor // Valor seleccionado
                        
},function(data){
                        $(
"#Poblacion").html(data);    //Tomo el resultado de pagina e inserto los datos en el combo indicado                                                                                
                                                    
})                                                
            
        
    })        
}) 

Última edición por riscking; 11/04/2010 a las 16:31 Razón: Objetivo conseguido
  #2 (permalink)  
Antiguo 29/03/2010, 12:17
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 4 meses
Puntos: 65
Respuesta: Jquery a partir de unos radios rellenar un select

tienes que enviar con ajax, jquery tiene varias formas de trabajar con ajax

ajax() lee los que hace cada parámetro pero basicamente con los ejemplos te das cuenta, por ej:

Código Javascript:
Ver original
  1. $.ajax({
  2.    type: "POST",
  3.    url: "some.php",
  4.    data: "name=John&location=Boston",
  5.    success: function(msg){
  6.      alert( "Data Saved: " + msg );
  7.    }
  8.  });

El parámetro
type para enviar por GET o POST
url la url, en el ej envia a some.php, si envias por get podés icluir ahí también los parámetros, o sea, some.php?parametro=valor
pero también podés enviar los parámetros indicandole en el parámetro data
data variable1=valor1&variable2=valor2
success función que se ejecutará cuando el envio sea exitoso
en la doc están todos los parámetros y llamadas a funciones que se pueden realizar cuando hay error, cuando se completa la carga o antes de enviar, hay que jugar con ellas nomás un rato. Esta función te permite recibir xml, json o html

si tenés un formulario con muchos campos y querés formar una url para enviarlas y en vez de recuperar con $('micampo').val() hay una función muy útil que es serialize() ahi también hay ejemplo no es necesario explicación

otra forma es con get()
otra es post() ya con solo el nombre se sabe que hace jeje y hay muchos ejemplos para entender sin leer

otra para recibir json que es getJSONN
  #3 (permalink)  
Antiguo 29/03/2010, 12:31
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 4 meses
Puntos: 65
Respuesta: Jquery a partir de unos radios rellenar un select

Cita:
Iniciado por riscking Ver Mensaje

mi ultimo avance es este, pero esque tampoco se si voy bien.

Código HTML:
$(document).ready(function(){
						  $(":radio").click(function () {
      
	  str = $("input[name='clase']:checked").val(); 
      $("#sty").addClass('div').text(str);
	  var combo_prov = new Array();
	  $("#Provincias"+combo_prov[posicion]).html('<option selected="selected" value="0">Cargando...</option>')
	  $.post("modules/combo_prov.php",{
			tipo:text(str) // Valor seleccionado
			},function(data){
			$("#Provincias"+combo_prov[posicion]).html(data);																			
		})	
    })	
})
¿qué es tipo:text(str) ?
debería ser tipo: str

después creo que tu array no tiene nada así que no sirve no sé para que lo usas y la variable 'posicion' no está definido

sacando esa variable y ese array quedaría así:

Código HTML:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Prueba</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
    $(function(){
        $(":radio").click(function () {
            str = $("input[name='clase']:checked").val();
            alert(str);
            $("#sty").addClass('div').text(str);
            $("#Provincias").html('<option selected="selected" value="0">Cargando...</option>')
            $.post("modules/combo_prov.php",{ tipo: str }  // Valor seleccionado
                ,function(data){
                $("#Provincias").html(data);
            });
        });
    });
    </script>
</head>
<body>
<input type="radio" id="clase" name="clase" value="9"> Viviendas<br>
	<input type="radio" id="clase" name="clase" value="1"> Caseríos<br>
	<input type="radio" id="clase" name="clase" value="2"> Pabellones<br>
	<input type="radio" id="clase" name="clase" value="3"> Lonj. Comerciales<br>
	<input type="radio" id="clase" name="clase" value="4"> Terrenos<br>
	<input type="radio" id="clase" name="clase" value="5"> Chalets<br>
	<input type="radio" id="clase" name="clase" value="6"> Negocios<br>
	<input type="radio" id="clase" name="clase" value="7"> Oficinas<br>
	<input type="radio" id="clase" name="clase" value="8"> Garajes<br><br />

        <select id="Provincias">
            <option></option>
        </select>

</body>
</html> 
  #4 (permalink)  
Antiguo 29/03/2010, 12:57
 
Fecha de Ingreso: marzo-2008
Mensajes: 82
Antigüedad: 16 años
Puntos: 0
Respuesta: Jquery a partir de unos radios rellenar un select

Vaya por un pelo, joder ni me lo creo, lo de tipo:str lo he llegado a poner bien pero al final lo cambie.
Muchas gracias Dany_s de verdad, ahora quiero añadir otro select relacionado con este, a ver si me sale.
Esto va viento en popa, xDD.
  #5 (permalink)  
Antiguo 29/03/2010, 13:01
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 4 meses
Puntos: 65
Respuesta: Jquery a partir de unos radios rellenar un select

si, jquery lo hace sencillo jeje
te conviene jugar con los ejemplos de la doc y entenderlos son muy sencillos y descriptivos (por más que todavía no lo necesites), después en tus script no tenés problemas.
Saludos.
  #6 (permalink)  
Antiguo 29/03/2010, 13:50
 
Fecha de Ingreso: marzo-2008
Mensajes: 82
Antigüedad: 16 años
Puntos: 0
Respuesta: Jquery a partir de unos radios rellenar un select

Aupi de nuevo tengo un problemilla para crear el contenido de un segundo select a partir del valor de la primera opcion del primero y esque no se como coger su valor ya q me dice undefined y se me queda en blanco.

Código PHP:
$(document).ready(function(){
                         $(
":radio").click(function () {
            
str = $("input[name='clase']:checked").val();
            
            var 
valor
            
$("#Provincias").html('<option selected="selected" value="0">Cargando...</option>')
            $.
post("modules/combo_prov.php",{ 
                 
tipostr }  // Valor seleccionado
                
,function(data){
                $(
"#Provincias").html(data);
                
                
            });
            
valor = $("#Provincias").val()
            $(
"#sty").addClass('div').text(valor);    
                
            $(
"#Poblacion").html('<option selected="selected" value="0">Cargando...</option>')
            $.
post("modules/combo_pob.php",{ 
                 
tipostr,
                 
poblavalor}  // Valor seleccionado
                
,function(data){
                $(
"#Poblacion").html(data);
            });
            
        });
                               
    
}) 

Última edición por riscking; 29/03/2010 a las 14:12
  #7 (permalink)  
Antiguo 30/03/2010, 05:34
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 4 meses
Puntos: 65
Respuesta: Jquery a partir de unos radios rellenar un select

Pasa que estas tratando de recuperar un valor que todavia no sabes si está o no cargado, creo que nunca vas a poder recuperar el valor que esperás después del callback de post porque es asíncrona, o sea que por mas que esté esperando datos se continúa la ejecución y por eso todavía no tiene los datos en el select.

Podés hacer que en el callback se ejecute una función y en esa función tengas la otra petición, algo como:

Código HTML:
            $.post("modules/combo_prov.php",{tipo: str },
                function(data){
                    $("#Provincias").html(data);
                    buscarLocalidades();
                }
            );
                
            function buscarLocalidades(){
                valor = $("#Provincias").val();
                alert(valor);
                //aca la petición...
            }
  #8 (permalink)  
Antiguo 30/03/2010, 12:22
 
Fecha de Ingreso: marzo-2008
Mensajes: 82
Antigüedad: 16 años
Puntos: 0
Respuesta: Jquery a partir de unos radios rellenar un select

Gracias de nuevo Dany_s ya lo tengo totalmente operativo, supongo q se podra mejorar pero de momento me vale, dejo el codigo por si le sirve a alguien, si lo mejoro lo actulizare tb.
Un placer tratar con gente asi.

Etiquetas: partir, rellenar, select
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 05:13.