Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/08/2012, 12:05
unexes
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 10 meses
Puntos: 7
3 selects dependientes

Hola a tod@s, necesito vuestra ayuda.

Vereis siguiendo un tutorial he hecho estos 3 selects dependientes que funcionan perfectamente y cuyo código completo pongo a continuación para que lo utilice quien lo necesite.
El motivo de dirigirme a vosotr@s es que debido a mis escasos conocimientos no se mejorarlo y me gustaria hacerlo ya que he comprobado que hay mucha información en la red pero ciertas cosas que para algunos son sencillas, para otros como yo resultan complicadas y no se esplican bien es por eso que preciso vuestra ayuda.
1º) Vereis necesito obtener: 3 variables una que corresponda al pais seleccionado, otra a la provincia seleccionada y otra a la población con el fín de utilizarlas luego en una consulta. y no se como sacarlas y pasarlas a la página "Principal.php".
2º) ¿Seria posible poner todo el código en una misma página?.
3ª) Me gustaria que de todos lo valores con los que se rellena cada select aparecieran en cada uno de ellos un valor por defecto pero que me permitira poder seleccionar otro de los valores ya que si en la <option value="0">seleccione etc..</option>pongo un valor aparece dicho valor pero no me deja seleccionar otro.

Principal.php
Código PHP:
Ver original
  1. <script type="text/javascript" language="javascript" src="Funciones.js"></script>
  2.  
  3. <?php
  4.         require_once('../Connections/ConexionInmobiliaria.php');
  5.         $selpoblacion = isset($_GET["selpoblacion"])? $_GET["selpoblacion"]: '';
  6.         $selprovincia = isset($_GET["selprovincia"])? $_GET["selprovincia"]: '';
  7. ?>
  8. <body onLoad="limpiar()">
  9. <FORM NAME="form1">
  10. <div id="ContPais">
  11.   <div id="NomPais"><font color="#666666" style=" font-family:Verdana, Geneva, sans-serif; font-weight:bold; font-size:10pt">Seleccionar Lugar:</font></div>
  12.   <div id="SelPais">
  13. <?php
  14. $sql="select* from pais order by pais asc";
  15. $res=mysql_query($sql,$conexion);
  16. ?>
  17. <select name="selpais" onChange="from(document.form1.selpais.value,'SelProvincia','Provincias.php')" id="selpais" size="1" class="Guias2">
  18. <option value="0">Seleccione el pais</option>
  19. <?php
  20. while ($reg=mysql_fetch_array($res))
  21. {
  22. ?>
  23. <option value="<?php echo $reg["id"];?>"><?php echo $reg["pais"];?></option>
  24. <?php
  25.     }
  26. ?>
  27. </select>
  28. </div>
  29. <div id="SelProvincia">
  30. <select name="selprovincia" id="selprovincia" size="1" class="Guias2">
  31. <option value="0">Seleccione la provincia</option>
  32. </select>
  33. </div>
  34.   <div id="SelPoblacion">
  35. <select name="selpoblacion" id="selpoblacion" size="1" class="Guias2">
  36. <option value="0">Seleccione la población</option>
  37. </select>
  38. </div>
  39. </div>
  40. </FORM>
  41. </body>

Provincias.php
Código PHP:
Ver original
  1. <?php
  2. require_once('../Connections/ConexionInmobiliaria.php');
  3. header("Content-Type: text/html;charset=iso-8859-1");
  4.  
  5.  
  6. $sql="select* from provincias where Cod_Pais=".$_GET["id"]." order by Provincia asc";
  7. $res=mysql_query($sql,$conexion);
  8. ?>
  9. <select name="selprovincia" onChange="from(document.form1.selprovincia.value,'SelPoblacion','Poblaciones.php')" id="selprovincia" size="1" class="Guias2">
  10. <option value="0">Seleccione la provincia</option>
  11.  
  12. <?php
  13. while ($reg=mysql_fetch_array($res))
  14. {
  15. ?>
  16. <option value="<?php echo $reg["id"];?>"><?php echo $reg["Provincia"];?></option>
  17. <?php
  18.     }
  19. ?>
  20.  
  21. </select>

Poblaciones.php
Código PHP:
Ver original
  1. <?php
  2. require_once('../Connections/ConexionInmobiliaria.php');
  3. header("Content-Type: text/html;charset=iso-8859-1");
  4.  
  5.  
  6. $sql="select* from poblaciones where Cod_Provincia=".$_GET["id"]."";
  7. $res=mysql_query($sql,$conexion);
  8. ?>
  9. <select name="selpoblacion" id="selpoblacion" size="1" class="Guias2">
  10. <option value="0">Seleccione la población</option>
  11.  
  12. <?php
  13. while ($reg=mysql_fetch_array($res))
  14. {
  15. ?>
  16. <option value="<?php echo $reg["id"];?>"><?php echo $reg["Poblacion"];?></option>
  17. <?php
  18.     }
  19. ?>
  20.  
  21.  
  22. </select>

Funciones.js
Código Javascript:
Ver original
  1. function obtiene_http_request()
  2. {
  3. var req = false;
  4. try
  5.   {
  6.     req = new XMLHttpRequest(); /* p.e. Firefox */
  7.   }
  8. catch(err1)
  9.   {
  10.   try
  11.     {
  12.      req = new ActiveXObject("Msxml2.XMLHTTP");
  13.   /* algunas versiones IE */
  14.     }
  15.   catch(err2)
  16.     {
  17.     try
  18.       {
  19.        req = new ActiveXObject("Microsoft.XMLHTTP");
  20.   /* algunas versiones IE */
  21.       }
  22.       catch(err3)
  23.         {
  24.          req = false;
  25.         }
  26.     }
  27.   }
  28. return req;
  29. }
  30. var miPeticion = obtiene_http_request();
  31. //***************************************************************************************
  32. function from(id,ide,url){
  33.         var mi_aleatorio=parseInt(Math.random()*99999999);//para que no guarde la página en el caché...
  34.         var vinculo=url+"?id="+id+"&rand="+mi_aleatorio;
  35.         //alert(vinculo);
  36.         miPeticion.open("GET",vinculo,true);//ponemos true para que la petición sea asincrónica
  37.         miPeticion.onreadystatechange=miPeticion.onreadystatechange=function(){
  38.                if (miPeticion.readyState==4)
  39.                {
  40.                    //alert(miPeticion.readyState);
  41.                        if (miPeticion.status==200)
  42.                        {
  43.                                 //alert(miPeticion.status);
  44.                                //var http=miPeticion.responseXML;
  45.                                var http=miPeticion.responseText;
  46.                                document.getElementById(ide).innerHTML= http;
  47.  
  48.                        }
  49.                }/*else
  50.                {
  51.             document.getElementById(ide).innerHTML="<img src='ima/loading.gif' title='cargando...' />";
  52.  
  53.                 }*/
  54.        }
  55.        miPeticion.send(null);
  56.  
  57. }
  58. //************************************************************************************************++
  59. function limpiar()
  60. {
  61.     document.form1.reset();
  62.    
  63. }
Bueno eso es todo de momento, si podeis ayudarme lo agradeceria.
Gracias a todos