Foros del Web » Programando para Internet » PHP »

Enviar datos de un iframe via POST

Estas en el tema de Enviar datos de un iframe via POST en el foro de PHP en Foros del Web. Hola, espero puedan ayudarme, mi problema es que tengo: 1. Una pagina con un formulario que tiene un textbox con mi nombre INICIO.PHP <!DOCTYPE html ...
  #1 (permalink)  
Antiguo 05/10/2012, 14:09
 
Fecha de Ingreso: octubre-2008
Mensajes: 268
Antigüedad: 15 años, 6 meses
Puntos: 3
Enviar datos de un iframe via POST

Hola, espero puedan ayudarme, mi problema es que tengo:

1. Una pagina con un formulario que tiene un textbox con mi nombre

INICIO.PHP

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<form action="Recepcion.php" method="post">

Nombre:
<input type="text" name="txt_Nombre" />
<iframe src="Frame.php" width="500" height="300" name="datos" id="datos" >
</iframe>


<input type="submit" name="btn_Ingresar" value="Ingresar Datos" />

</form>
</body>
</html>

2. Dentro de este formulario tengo un iframe estoy poniendo un textbox con la direccion.

Frame.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
Direccion
<input type="text" name="txt_Direccion" id="txt_Direccion" /></body>
</html>

3. Una pagina que recibe la data y la muestra, es decir que recibi el NOMBRE y la DIRECCION, mediante el uso de un form y un submit


Recepcion.php

<?php
$nombre = $_POST['txt_Nombre'];
$direccion = $_POST['datos.txt_Direccion'];
$direccio1 = $_POST['txt_Direccion'];

echo $nombre;
echo "<br>";
echo $direccion;
echo "<br>";
echo $direccio1;
echo "<br>";

?>


Mi problema esta en que NO LOGRO QUE ME MUESTRE LA DATA QUE TENGO DENTRO DE IFRAME, NO PYUEDO VER NADA, SOLO LO Q ESTA FUERA EL IFRAME, ALGUIEN ME PUEDE APOYAR.


Dejo mi codigo de muestra para que les sea mas sencillo apoyarme.

Gracias de antemano y buen fin de semana.
  #2 (permalink)  
Antiguo 05/10/2012, 15:00
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Enviar datos de un iframe via POST

hacéis cosas muy extrañas.
un iframe no puede ser enviado. la solución es a medida que se rellana el control del iframe, volcar su valor en un control hidden que esté en formulario de la página contenedora. esto se hace con javascript (window.parent) creo, no lo he hecho nunca
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 05/10/2012, 15:32
 
Fecha de Ingreso: octubre-2008
Mensajes: 268
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Enviar datos de un iframe via POST

Cita:
Iniciado por IsaBelM Ver Mensaje
hacéis cosas muy extrañas.
un iframe no puede ser enviado. la solución es a medida que se rellana el control del iframe, volcar su valor en un control hidden que esté en formulario de la página contenedora. esto se hace con javascript (window.parent) creo, no lo he hecho nunca
Gracias por el dato, ya mismo estoy intentando grabar mi data la pagina q contiene el iframe y meter la data en una Session, de ahi pasarlo todo al formulario principal para ser grabado, ojala q sea practico.

Gracias por la informacion.

Saludos.
  #4 (permalink)  
Antiguo 06/10/2012, 10:23
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Enviar datos de un iframe via POST

Cita:
hacéis cosas muy extrañas.
valla que si

me gusto el desafio yo tampoco lo hise nunca pero aqui esta:

Index.html/php:
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3.     <head>
  4.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5.     <title>Inicio</title>
  6.     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  7.     <Script Type="text/javascript">
  8.         function AgregarCampos(ID,VAL){
  9.             campo = '<input type="hidden" id="'+ID+'"  name="'+ID+'"  value="'+VAL+'" />';
  10.             $('#formulario').append(campo);
  11.         }
  12.         function CargarCamposIframe(){
  13.             $(".Indirecto",datos.document).each(function(){        
  14.                 AgregarCampos($(this).attr('id'), $(this).val());
  15.             });
  16.             $('#formulario').submit();//Esta linea envia el formulario
  17.         }          
  18.     </Script>
  19.     </head>
  20.  
  21.     <body>
  22.         <form action="Recepcion.php" method="post" id="formulario">
  23.  
  24.         Nombre:
  25.         <input type="text" name="txt_Nombre" />
  26.         <iframe src="Frame.html" width="500" height="300" name="datos" id="datos" ></iframe>
  27.        
  28.         </form>
  29.  
  30.         <button name="btn_Ingresar" onclick="CargarCamposIframe();">Enviar</button>
  31.     </body>
  32. </html>

Frame.html/php:

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3.     <head>
  4.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5.         <title>Frame</title>
  6.     </head>
  7.  
  8.     <body>
  9.         Direccion
  10.         <input type="text" name="txt_Direccion" id="txt_Direccion" Class="Indirecto" value="hola"/>
  11.     </body>
  12. </html>

con ese codigo, todos los elementos de la clase Indirecto dentro del iframe se comportaran como si estubiesen en la misma pagina que el formulario al hacer click en el boton.

saludos.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #5 (permalink)  
Antiguo 06/10/2012, 13:58
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Enviar datos de un iframe via POST

cometes dos errores
1. hacer dependiente el envío del formulario a que javascript esté activado
2. uso de librería

mi presentimiento era acertado
Cita:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="es" xml:lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>
<body>

<form name="f" action="elquesea.php" method="post">
<input type="text" name="c1" id="c1" value="" />
<input type="text" name="c2" id="c2" value="" />

<iframe src="Frame.html" width="500" height="300" name="datos" id="datos"></iframe>

<input type="submit" value="enviar" />

</form>
</body>
</html>
Cita:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="es" xml:lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<script type="text/javascript">
function fnc(valor) {
window.parent.f.c2.value = valor;
}
</script>
</head>
<body>

<form>
<input type="text" name="txt_Direccion" id="txt_Direccion" onkeyup="fnc(this.value)" />
</form>

</body>
</html>
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #6 (permalink)  
Antiguo 06/10/2012, 16:23
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Enviar datos de un iframe via POST

Cita:
cometes dos errores
1. hacer dependiente el envío del formulario a que javascript esté activado
2. uso de librería
Defensa:
1. Si nesesita un campo de dentro de un iframe es porque es relevante para el envio, por lo que asumo que no tiene interes que el formulario se envie sin ese campo, y , como para enviar ese campo nesesita javascript, me parece lo mas natual del mundo hacer que el envio de un formulario dependa de la misma herramienta que recopila sus datos.

2. Tu teoria sobre el metodo era acertada (yo utilice los mismos conceptos que tu) sin embargo (diferencias de opinion) yo opte por una solucion general y que no solo arreglara este caso particular sino que ademas sirva para incluir cualquier otro campo que este en el iframe al formulario, la forma mas facil es con jquery. por eso opte por la libreria, sin contar con la elevada posibilidad de que ya la este usando para otra cosa en dicho caso, no estaria agregando nada extra al proyecto.



En fin nuestro colega ya tiene 2 soluciones entre las que elegir y ambas dependen de javascript.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #7 (permalink)  
Antiguo 07/10/2012, 07:40
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Enviar datos de un iframe via POST

partes de dos premisas que pueden ser ciertas o no, el usuario no lo dice
  • el control del iframe es fundamental de ahí hacer dependiente de javascript el envío del formulario: si es fundamental ese valor, se puede/debe validar en el servidor
  • elevada posibilidad del uso de librería: no conozco los porcentajes de uso de esa librería. por no hablar del derroche de recursos que implica usarla. no quiero decir que no haya que usarla, sino que hay que hacerlo con cabeza. si te pasas por el foro de javascript, verás verdaderas atrocidades

en cuanto a desarrollar un caso específico o general, javascript te lo resuelve con el método getElementsByTagName()
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #8 (permalink)  
Antiguo 07/10/2012, 15:33
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Enviar datos de un iframe via POST

Cita:
el control del iframe es fundamental de ahí hacer dependiente de javascript el envío del formulario: si es fundamental ese valor, se puede/debe validar en el servidor
la logica dicta que si, si no fuese nesesario no lo haria de esta forma, pero, tengo que admitirlo la logica no es muy comun aqui (pregunte a un usuario que error le mostraba el navegador y no sabia si era un 404 o un 500 lo que veia) por lo que puede que tengas razon en ese punto.

Cita:
sino que hay que hacerlo con cabeza
Amen. tu conocimiento de javascrit es mayor que el mio (lo digo con sinseridad) coincido plenamente en que hay que evitar usar la libreria si no es nesesario pero para aportar alguna solucion desidi usarla.

lo importante es que nuestro colega consiga la solucion y opte por algunos de los metodos con las (ventajas/contra) que cada uno ofrese
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #9 (permalink)  
Antiguo 07/10/2012, 15:41
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Enviar datos de un iframe via POST

Como he dicho en otros post por acá, si te vas a preocupar tanto por si está activado o no javascript, directamente volve a la web 1.0 y que te valla bien, andate olvidando de ajax, jquery y toda las web 2.0.
Por lo tanto sáquense de la cabeza el tema de que si está desactivado javascript y que esto y lo otro, no se cierren tanto en si está desactivado o no javascript, los usuarios comunes sin conocimientos de este tema no saben como desabilitarlo, por ende olvídense de estás cosas.
  #10 (permalink)  
Antiguo 07/10/2012, 16:26
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Enviar datos de un iframe via POST

rodrigo791, o yo no me he explicado bien o no has entendido.

si hay que usar ajax, se usa, pero dejando una puerta abierta. si hay que usar librerías, se usan, pero no como regla general.....

la idea es que el mayor número de personas tenga acceso al contenido.
te sorprendería saber los de millones de personas que aún hoy en día navegan con ie6. de tal modo que hay que buscar alternativas al uso de css3, html5, algunos métodos de javascript y a aquella gente, que como yo, navega con javascript desactivado
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #11 (permalink)  
Antiguo 07/10/2012, 17:36
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Enviar datos de un iframe via POST

Cita:
te sorprendería saber los de millones de personas que aún hoy en día navegan con ie6. de tal modo que hay que buscar alternativas al uso de css3, html5, algunos métodos de javascript y a aquella gente, que como yo, navega con javascript desactivado
JQuery 2.0 (dato curioso) anuncio que cuando salga no ofrecera soporte ni para ie6 ni ie7 ni ie8.

si trabajamos para un clinte estoy deacuerdo en buscar la maxima compativilidad posible (ni mas ni menos) pero si uno encara un proyecto personal, creo que se debe usar todas las tecnologias disponibles (sobre todo en esta area donde dentro de 10 años todo lo que hacemos ahora sera viejo y obsoleto).

salvo evitar alguna publicidad nose que le ves a no usar javascript pero eso es algo personal tuyo y lo respeto como tal.

visitantes como tu no son un porcentaje muy numeroso y personalmente no me preocupo por como vean o no la web. el cliente es libre de hacer lo que quiera, pero si no hace lo que yo le pido pues vera las consecuencias, si tu elejes no usar javascript perfecto. yo no programare para que tu veas mi web. si fuese asi habria que hacer 100 modelos de la misma web, uno para cada navegador con js, otro para cada navegador sin js, otro para cada dispositivo, otro para cada plugin que tenga el navegador etc etc, libertad señores y señor(it)a LIBERTAD, el diseñador web sugiere y proporciona los elementos indicados para ver la web, el visitante tiene total libertad de hacer con ellos lo que les plasca, si hace caso la vera bien, si se pones quisquilloso que acepte las consecuencias,

Cita:
REVOLUCIONEMOS LA WEB ENTRE TODOS
Construyamos el futuro de la internet
sono a campaña publicitaria
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #12 (permalink)  
Antiguo 07/10/2012, 17:57
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Enviar datos de un iframe via POST

No hay mucho mas que argumentar, el que quiere quemarse la cabeza con esto de si javascript activado o no, o css3 o css común, o xhtml o html5 etc etc... que lo haga.
A mucha gente no le importa, incluso a los que inventan librerías para estos problemas, sino entren en http://modernizr.com/ ( para los que no sepan que es, es una librería js que permite saber si el navegador es compatible o no con ciertas propiedades de html5 y css3 ) y vean que en google chrome se ve perfecto, si entran en internet explorer no, por lo tanto, ni siquiera a ellos les importa esto. Es criterio de cada uno hacer bordes redondeados con css3 y que funcione en mozila opera y chrome o hacer bordes redondeados con imágenes a la antigua y que funcione en todos ( es solo un ejemplo :: )
Saludos
  #13 (permalink)  
Antiguo 09/10/2012, 09:28
 
Fecha de Ingreso: octubre-2008
Mensajes: 268
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Enviar datos de un iframe via POST

Muchas gracias por sus soluciones, NSD e IsaBelM ambas me parecen muy buenas, gracias por el aporte, vere de probarlo.

Saludos.
  #14 (permalink)  
Antiguo 09/10/2012, 11:35
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 2 meses
Puntos: 36
Respuesta: Enviar datos de un iframe via POST

Ya es la segunda vez que veo esta pregunta en el foro, como que alguien no quiere "pensar" y hacer la tarea, pero bueno como ya respondí esta pregunta te la paso

http://www.forosdelweb.com/f18/como-pasar-datos-pagina-contenida-iframe-1017076/#post4287373

Etiquetas: formulario, html, iframe, post
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 19:52.