Foros del Web » Programando para Internet » Jquery »

Mantener valor de selects con Jquery + PHP

Estas en el tema de Mantener valor de selects con Jquery + PHP en el foro de Jquery en Foros del Web. Hola, muchas gracias ante todo por vuestra ayuda ... mi problema es el siguiente: Tengo tres select dependientes para que el usuario pueda seleccionar la: ...
  #1 (permalink)  
Antiguo 26/01/2011, 04:40
 
Fecha de Ingreso: enero-2005
Ubicación: Málaga
Mensajes: 30
Antigüedad: 19 años, 3 meses
Puntos: 1
Mantener valor de selects con Jquery + PHP

Hola, muchas gracias ante todo por vuestra ayuda ... mi problema es el siguiente:

Tengo tres select dependientes para que el usuario pueda seleccionar la:

Comunidad Autonoma - > Provincia - Municipio

Una vez hecho el post, guardo los datos en mi bbdd y a posteriori se recarga el formulario, el problema es que necesito que los selects mantenga la seleccion del usuario.

Uso PHP/Smarty, recupero los balores de la bbdd ... pero no estoy muy puesto en jquery y me está costando ... no logro hacer el selected con los valores id_cc, id_provincia e id_municipio ... por favor, podrias echarme una mano??

No se si tengo que hacerlo a nivel del script de PHP, que haga un echo del selected cuando al hacer el bucle compruebe que es el item seleccionado ... pero aun asi de todas formas, al recargar ... el jquery del select hace que vuelva al inicio, sin invocar a los script php no?

Este es mi codigo por ejemplo de uno de los script ... sin el selected .. aun

Supongo que la clave está en las linea:
Código:
$.post("/id_provincia.php", { elegido_cc: elegido }, function(data){
pero como os digo ... no entiendo aún muy bien como funciona y cual es la nomenclatura que está aplicando.

Además cunado los select se recarguen deberian de ser funcionales, es decir, el usuario deberia de poder volver a seleccionar otra comunidad autónoma y por lo tanto habrian de recargarse los select dependientes ....

Código:
$id = f_conecta_bd();

$elegido_cc = $_REQUEST["elegido_cc"];

$sql = "SELECT * FROM provincias WHERE id_cc='$elegido_cc' ORDER BY nombre";
$vh_datos = query_libre($sql);
$ls = "<option>Seleccione Provincia</option>";

for ($i =0; $i < count($vh_datos); $i++)
{
  $nombre           = $vh_datos[$i]["nombre"];
  $id_provincia_tmp = $vh_datos[$i]["id_provincia"];

  $ls = $ls . "<option value='$id_provincia_tmp'>$nombre</option>";

}

echo $ls;
Mil gracias

Código:
      <select style="margin-top:3px; width:225px" name="id_cc" id="id_cc">                                       
        {html_options options=$vh_lista_cc}                                       
       </select>
       <br>
       <select style="margin-top:3px; width:225px" name="id_provincia" id="id_provincia">                                                                  
           <option>Seleccione Provincia</option>
       </select>   
       <br>
       <select style="margin-top:3px; width:225px" name="id_municipio" id="id_municipio">                                
           <option>Seleccione Municipio</option>                                      
       </select>
Código:
$(document).ready(function(){
	// Parametros para e combo1
   $("#id_cc").change(function () {
   		$("#id_cc option:selected").each(function () {
			//alert($(this).val());
				elegido=$(this).val();
				$.post("/id_provincia.php", { elegido_cc: elegido }, function(data){
				$("#id_provincia").html(data);
				$("#id_municipio").html("");
			});			
        });
   })
	// Parametros para el combo2
	$("#id_provincia").change(function () {
   		$("#id_provincia option:selected").each(function () {
			//alert($(this).val());
				elegido=$(this).val();
				$.post("/id_municipio.php", { elegido_pr: elegido }, function(data){
				$("#id_municipio").html(data);
			});			
        });
   })
});

Última edición por fmorales; 26/01/2011 a las 05:47
  #2 (permalink)  
Antiguo 26/01/2011, 06:27
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Tema movido desde javascript
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 26/01/2011, 16:44
 
Fecha de Ingreso: enero-2005
Ubicación: Málaga
Mensajes: 30
Antigüedad: 19 años, 3 meses
Puntos: 1
Respuesta: Mantener valor de selects con Jquery + PHP

Por favor, nadie puede ayudarme con este asunto??? nadie puede por lo menos indicarme como mantener los valores seleccionados tras hacer el post??
  #4 (permalink)  
Antiguo 27/01/2011, 02:36
 
Fecha de Ingreso: enero-2005
Ubicación: Málaga
Mensajes: 30
Antigüedad: 19 años, 3 meses
Puntos: 1
Respuesta: Mantener valor de selects con Jquery + PHP

Estoy intentando añadir la linea:

$("#id_provincia option[value='3']").attr('selected', 'selected');

pero nada, una vez hecho el post, la página se recarga y los valores de los dos select se resetean, y aparecen sin valor, hasta que se vuelve a desplegar la primera opción y seleccionar otra opción distinta de la que se seleccionó ...

Lo que veo es que cuando ser recarga el formulario, todos los select se resetean y cuando los vuelvo a desplegar, me seleccionar como selected el valor 3, pero eso no es lo que necesito, lo que necesito es que ... sin desplegar el select directamente me lo seleccione ...


cualquier minima ayuda es bien venida... gracias

Última edición por fmorales; 27/01/2011 a las 02:54
  #5 (permalink)  
Antiguo 27/01/2011, 05:02
 
Fecha de Ingreso: enero-2005
Ubicación: Málaga
Mensajes: 30
Antigüedad: 19 años, 3 meses
Puntos: 1
Respuesta: Mantener valor de selects con Jquery + PHP

Bueno... estos son mis progresos .... consigo que al seleccionar la provincia / municipio al hacer el post ... los valores se mantengan, pero porque compongo el option median PHP/Smarty ... esto me medio vale, pero esto select solo tiene un elemento, el de la provincia / municipio seleccionado , me gustaria por ejemplo que al volver a mover la seleccion del nivel superior, el select dependiente recargase todos los valores ... y eso ahora no consigo hacerlo ...

... alguna idea?

Simplemente necesitaria por ejemplo que si el usuario selecciona Todas las provincias,

Código:
        <div style="clear:both"></div>    
        <div style="float:right; margin-right:5px;  margin-top:7px">
          <select style="margin-top:3px; width:230px" name="id_cc" id="id_cc">                                       
          {html_options options=$vh_lista_cc selected=$id_cc}                                       
          </select>
        </div>
        <div style="clear:both"></div>
        <div style="float:right; margin-right:5px;  margin-top:7px">

          <select style="margin-top:3px; width:230px" name="id_provincia" id="id_provincia">                                                                  
           <option value="0">Todas las provincias</option>
           {if $id_provincia neq "" and $id_provincia neq "0"}
           <option value="{$id_provincia}" selected>{$provincia}</option>
           {/if}
          </select>
        </div>
        <div style="clear:both"></div>
        <div style="float:right; margin-right:5px;  margin-top:7px">
          <select style="margin-top:3px; width:230px" name="id_municipio" id="id_municipio">                                
           <option value="0">Todos los municipios</option> 
           {if $id_municipio neq "" and $id_municipio neq "0"}
           <option value="{$id_municipio}" selected>{$municipio}</option>
           {/if}                                                
          </select>
        </div>
Código:
$(document).ready(function(){
	// Parametros para e combo1
   $("#id_cc").change(function () {
   		$("#id_cc option:selected").each(function () {
			//alert($(this).val());
				elegido=$(this).val();
				$.post("/id_provincia.php", { elegido_cc: elegido }, function(data){
				$("#id_provincia").html(data);
				$("#id_municipio").html("");
			});			
        });
   })
	// Parametros para el combo2
	$("#id_provincia").change(function () {
   		$("#id_provincia option:selected").each(function () {
			//alert($(this).val());
				elegido=$(this).val();
				$.post("/id_municipio.php", { elegido_pr: elegido }, function(data){
				$("#id_municipio").html(data);
			});			
        });
   })
});
  #6 (permalink)  
Antiguo 27/01/2011, 06:38
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Mantener valor de selects con Jquery + PHP

para que recargar el select?
si elegis comunidad no hace falta recargarle, deberia recargar solo el de provincia
lo mismo cuando elegis provincia debes recargar el de localidad

para obtener el valor del select no hace falta el each
obtene con $(this).val();

Etiquetas: mantener, php, selects
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:34.