Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/06/2004, 13:17
Geri
 
Fecha de Ingreso: noviembre-2003
Ubicación: Torrelodones
Mensajes: 134
Antigüedad: 20 años, 5 meses
Puntos: 0
Antes de nada, muchas gracias josemi. Estuve comiendome el coco y buscando tutoriales de Remote Scripting para conseguir lo que queria pero me resutaban muy dificil de adaptarlos asi que al final consegui hacerlo de una manera un poco casera y con ayuda del ejemplo que hay en las FAQS. Me gustaria que me dijeran si esta manera esta bien o seria una chapuza. Funciona que ya es algo

AQui les dejo el codigo del iframeoculto.php

Código PHP:
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script LANGUAGE="JavaScript"> 
<!-- 
  
   function Mostrar (opc){

   this.form1.submit()

}

//--> 
</script>
</head>

<? mysql_connect("localhost","","");
$base="inmo2";

   if(isset(
$_POST['prov'])){
   
$prov=$_POST['prov'];

    }else{
    
$prov="todo";
    
    }

         if(isset(
$_POST['pobl'])){
              
$pobl=$_POST['pobl'];
   
         }else{
              
$pobl="todo";
         }
if(
$prov=="todo"){
  
$pobl="todo";         
}else{
   
$rs=mysql_db_query($base,"select COUNT(*) from finca where provincia='$prov' and poblacion='$pobl'");
   
$resultado=mysql_result($rs,0,0);
   if(
$resultado==0){
     
$pobl="todo";
   }
   
mysql_free_result($rs);   
}

    
echo 
"<body onLoad=\"javascript:Mostrar2('$prov','$pobl')\">";    
/*********************************************************************
MUESTRA LAS PROVINCIAS Y LAS POBLACIONES
************************************************************************/
?>  

<form name="form1" method="post" action="">

<?
// Obtener el $id_padre del envio a si mismo del formulario ..

   // Inicio Formulario .. PHP_SELF enviamos a si mismo (a este script).
   //echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n\n";

   // Formar Selec "Padre".
   
echo "<select name=\"prov\"  onChange=\"javascript:Mostrar('$prov')\">\n";
   echo 
"<option value=\"todo\"> Todas las Provincias </option>\n";

   
   
$consulta_padre=mysql_db_query($base,"SELECT distinct(provincia) FROM finca order by provincia ASC");

   while(
$registro_padre=mysql_fetch_assoc($consulta_padre)){
      
// Se mira si el ID del registro es el mismo q el $id_padre q recibimos si hemos cambiado el select hijo.
      // Se selecciona en consecuencia (selected) la opción elegida.
      
if ($prov == $registro_padre['provincia']){
         echo 
"<option value=\"".$registro_padre['provincia']."\" selected>".$registro_padre['provincia']."</option>\n";
      } else {
         echo 
"<option value=\"".$registro_padre['provincia']."\">".$registro_padre['provincia']."</option>\n";
      }
    }
   echo 
"</select>\n\n";

   
mysql_free_result($consulta_padre); // Liberar memoria usada por consulta.

   // Formar Select "Hijo"
   
echo "<select name=\"pobl\" onChange=\"javascript:Mostrar('$pobl')\">\n";

   
// Si $id_padre no tiene valor (caso de que no se ha seleccionado ningua opcion del select hijo
   // se muestra el mensaje de "seleccine un item" (del select padre).
   
if (!empty($prov)){

       
       
$consulta_hija mysql_db_query($base,"SELECT distinct(poblacion) FROM finca WHERE provincia='$prov' order by poblacion ASC");
       
// se mira el total de registros de la consulta .. si es 0 se muestra mensaje en el select ..
       
if (mysql_num_rows($consulta_hija) != 0){
       echo 
"<option value=\"todo\"> Todas las Poblaciones </option>\n";
          while(
$registro_hija=mysql_fetch_assoc($consulta_hija)){
              if (
$pobl == $registro_hija['poblacion']){
              
$poblacion=$registro_hija['poblacion'];
                 echo 
"<option value=\"".$registro_hija['poblacion']."\" selected>".$registro_hija['poblacion']."</option>\n";
              } else {
                 echo 
"<option value=\"".$registro_hija['poblacion']."\">".$registro_hija['poblacion']."</option>\n";
              }

          }
        } else {
            echo 
"<option value=\"todo\"> Todas las Poblaciones </option>";
        }
    } else {
        echo 
"<option value=\"todo\" onClick=\"javascript:Mostrar('$prov')\"> Todas las Poblaciones </option>";
    }

    
mysql_free_result($consulta_hija); // Liberar memoria usada por consulta.
    
    
echo "</select>\n\n";
    
    
//echo "</form>\n";?>
</form>
<script LANGUAGE="JavaScript"> 
<!-- 
  
   function Mostrar2 (opc,opc1){
   window.parent.form1.provincia.value = '';
   var opc2 = (window.parent.form1.provincia.value + opc);
   window.parent.form1.provincia.value = opc2
   
   window.parent.form1.poblacion.value = '';
   var opc3 = (window.parent.form1.poblacion.value + opc1);
   window.parent.form1.poblacion.value = opc3

}

//--> 
</script>


</body>
</html>
Esta pagina es de un iframe oculto que es llamado desde otra pagina llamada buscar.php(mas abajo esta el codigo). En esta pagina hay 2 <select> que muestran la provincia y la poblaciones correspondientes a esa provincia. Entonces cuando pulsas en una provincia te recarga la pagina y te muestra las poblaciones. El problema que tenia era que no sabia como pasar los parametros de PROVINCIA y POBLACION a la pagina principal (Parent) sin tener que recargar la pagina principal cada vez que se cambia algun dato. Con la funcion javascript Mostrar2 pasa los parametros provincia y poblacion a 2 campos ocultos del formulario de la pagina principal. Otro problema que me surgio es que si seleccionabas una provincia y despues una poblacion los 2 campos se guardaban en los campos ocultos(hasta aqui bien) pero si seleccionabas otra vez una provincia diferente entonces se quedaba guardada la poblacion marcada anteriormente, es decir, de la provincia anterior a esta nueva. Para eso hice lo siguiente

if($prov=="todo"){
$pobl="todo";
}else{
$rs=mysql_db_query($base,"select COUNT(*) from finca where provincia='$prov' and poblacion='$pobl'");
$resultado=mysql_result($rs,0,0);
if($resultado==0){
$pobl="todo";
}
mysql_free_result($rs);
}

La pagina principal que tiene el iframe es buscar.php y su codigo es el siguiente

Código PHP:
<form name="form1" method="post" action="buscar.php">

  <
p>
        <
label>
         <
input type="radio" name="tipo_finca" value="todo" checked>
         
Todos
         
</label><br>
  
    <
label>
    <
input type="radio" name="tipo_finca" value="loqusea1">
Lo que sea 1
    
</label>
    <
br>

  </
p>

  <
p
    <
label
    <
input type="radio" name="tipo_gestion" value="todo" checked>
    
Todos </label>
    <
br>

    <
label
    <
input type="radio" name="tipo_gestion" value="loquesea">
      
Lo que sea  </label>
    <
br>

  <
input type="hidden" name="provincia">
  <
input type="hidden" name="poblacion">
    <
input type="submit" name="enviar" value="Enviar">
  </
p>

<
iframe src="iframeoculto.php" frameborder="0" width="100%" height="70"></iframe>
  
</
form
Espero que lo hayan entendido y que le sirva a alguien

Un saludo
__________________
Conoce gente nueva, haz amigos, aplicaciones para moviles, juegos online,... Y todo gratis!!! :si: www.cuelate.com