Foros del Web » Programando para Internet » PHP »

Paso de variables de iframe a PHP

Estas en el tema de Paso de variables de iframe a PHP en el foro de PHP en Foros del Web. Hola a todos/as Estoy algo quemao con lo siguiente, espero que me sepan ayudar. Mi duda es como se puede meter la variable que viene ...
  #1 (permalink)  
Antiguo 23/06/2004, 13:54
 
Fecha de Ingreso: noviembre-2003
Ubicación: Torrelodones
Mensajes: 134
Antigüedad: 14 años, 1 mes
Puntos: 0
Paso de variables de iframe a PHP

Hola a todos/as

Estoy algo quemao con lo siguiente, espero que me sepan ayudar. Mi duda es como se puede meter la variable que viene por javascript de un iframe oculto por medio de <div id="loquesea"></div>.

Me explico, yo tengo un frame oculto en una pagina que lo llamo de la siguiente manera
<iframe src="iframeoculto.php" frameborder="0" width="100%" height="70"></iframe>
En este iframe (iframeoculto.php) hago un par de conexiones a base de datos que me dan un resultado y estos resultados los paso a la pagina principal de la siguiente manera

<script type="text/javascript">
window.parent.document.getElementById('provincia') .innerText='<?php
echo $prov;?>';

window.parent.document.getElementById('poblacion') .innerText='<?php
echo $pobl;?>';


</script>

Para recoger estos resultados y mostrarlos en la pagina principal utilizo lo siguiente

<div id="provincia"></div>
o tambien
<span id="provincia"></span>

De esta manera me muestra los resultados correcatmente.
Aqui viene mi duda, lo que quiero es meter estos resultados en una variable PHP. Lo he probado de la siguiente manera
<? $provincia="<div id=\"provincia\"></div>";?>
Pero no me introduce la provincia en la variable, lo que hace es que me introduce el <div....> yo necesito que me meta lo que es la provincia en si para luego con esta variable hacer otra consulta en la base de datos. Se que es un lio pero espero que me sepan ayudar.

Muchas gracias
__________________
Conoce gente nueva, haz amigos, aplicaciones para moviles, juegos online,... Y todo gratis!!! :si: www.cuelate.com
  #2 (permalink)  
Antiguo 23/06/2004, 14:05
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Para poder pasar datos a PHP debes cargar la pagina. Con ese javascript estas evitando que se carge la pagina, asi que no estas pasando nada a PHP porque no estas ejecutando PHP.

Si quieres "almacenar" valores en HTML/javascript, mete los valores en variables javascript (o campos ocultos de formularios, dependiendo de lo que necesites).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 24/06/2004, 14:17
 
Fecha de Ingreso: noviembre-2003
Ubicación: Torrelodones
Mensajes: 134
Antigüedad: 14 años, 1 mes
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
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 20:53.