Foros del Web » Programando para Internet » Javascript » Frameworks JS »

IFrame en div

Estas en el tema de IFrame en div en el foro de Frameworks JS en Foros del Web. Buenas, tengo un problemilla y todo parte por culpa del IE. como no, el horror de la programacion web. Pues bien, tengo un PHP que ...
  #1 (permalink)  
Antiguo 14/01/2011, 12:42
 
Fecha de Ingreso: enero-2011
Mensajes: 7
Antigüedad: 13 años, 11 meses
Puntos: 0
IFrame en div

Buenas, tengo un problemilla y todo parte por culpa del IE. como no, el horror de la programacion web. Pues bien, tengo un PHP que recibe unos datos de un usuario y crea un formulario "<form> que se rellenan con los datos pasados por POST al PHP, y una vez se ha construido el formulario se llama a la pasarela de pago de moneybookers y automaticamente el resultado que obtengo lo incorporo en un iframe, es decir, el target del <form> es el iframe.

Bien, esta función de PHP es llamada a través de AJAX y el resultado que obtengo lo inserto en un DIV. (El resultado debe ser la pantalla de la pasarela de pago de Moneybookers).

Bueno pues esto me funciona en todos los navegadores excepto en el IE, que solo me deja el contenido del DIV en blanco.

¿Sabeis porque puede ser esto?

Gracias.
  #2 (permalink)  
Antiguo 14/01/2011, 13:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: IFrame en div

a ver, ¿con que obtienes el contenido y lo insertas?

¿no es con código php, verdad?

me imagino que lo harás con Javascript (Ajax)... entonces, ¿que tiene que ver todo esto con php?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 14/01/2011, 13:34
Avatar de Potro  
Fecha de Ingreso: abril-2001
Mensajes: 2.249
Antigüedad: 23 años, 8 meses
Puntos: 39
Respuesta: IFrame en div

Coincido con tigo pateketrueke pero al final hay que tratarlo de ayudar...

Como se ha dicho es un problema de tu ajax y algoq ue debes de tener mucho cuidado es que no los mismos codigos que funcionan en firefox o chrome serviran para IE, bueno seria bueno que nos pusieras tu ajax y asi poderle echar un ojo, por que asi nos dejas en la niebla no sabemos por donde empezar..
__________________
Paginación en FLASH,

http://www.forosdelweb.com/f62/pagin...o-aqui-540241/
  #4 (permalink)  
Antiguo 14/01/2011, 14:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Tema movido desde PHP a AJAX
  #5 (permalink)  
Antiguo 14/01/2011, 15:17
 
Fecha de Ingreso: enero-2011
Mensajes: 7
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: IFrame en div

Perdonad por postear en la seccion de PHP.

Bueno, tengo una sección en la web para realizar pagos y se divide en 3 secciones, la 1ª es para seleccionar el tipo de medio de pago (Visa, Mastercard, Moneybookers, etc....), la 2ª sección una estrada de texto para que el usuario introduzca la cantidad a transferir y junto al mismo un boton, y en la 3ª sección (que en principio está en blanco) donde una vez rellenados los datos anteriores, se insertaría la pantalla de la pasarela de Moneybookers.

Pues bien, cuando pulso en el boton, este invoca al siguiente código:

Código:
     var xml = null;
     try{
         xml = new ActiveXObject("Microsoft.XMLHTTP");
     }catch(expeption){
         xml = new XMLHttpRequest();
     }

xml.open("POST", "mb_connect.php", false);
		xml.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xml.send("pay_to_email="+datos[3]+
				  "&transaction_id="+datos[1]+
				  "&status_url="+datos[2]+
				  "&language="+lang+
				  "&pay_from_email="+datos[13]+
				  "&firstname="+datos[5]+
				  "&lastname="+datos[6]+
				  "&address="+datos[7]+
				  "&postal_code="+datos[8]+
				  "&city="+datos[9]+
				  "&state="+datos[10]+
				  "&country="+datos[11]+
				  "&date_of_birth="+datos[12]+
				  "&amount="+document.payment.cantidad.value+
				  "&payment_methods="+datos[4]);

		$("#contenido").html(xml.responseText);
Con este código, se cargaría en la 3! sección la pantalla de Moneybookers para que el usuario realice el pago, y funciona en todos los navegadores exceptuando el Internet Explorer.

el archivo de PHP es este:

Código:
<?php

header('Content-type: text/html; Charset=utf-8');

extract($_POST);
$status_url2		= 'mailto:[email protected]';
$return_url_target	= 3;
$return_url			= 'https://www.misite.com';
$cancel_url			= 'https://www.misite.com';
							
?>

			
<iframe id="myiframe" name="myiframe" frameborder="no" style="height: 600px; width:735px;" scrolling = "auto">
</iframe>
<form name="oc" action="https://www.moneybookers.com/app/payment.pl" method="post" target="myiframe">

	<input type="hidden" name="pay_to_email" 				value="<?= $pay_to_email ?>">
	<input type="hidden" name="recipient_description" 		value="My SITE ltd">
	<input type="hidden" name="transaction_id" 				value="<?= $transaction_id ?>">					
	<input type="hidden" name="status_url" 					value="<?= $status_url ?>">
	<input type="hidden" name="status_url2" 				value="<?= $status_url2 ?>">
	<input type="hidden" name="return_url_target" 			value="<?= $return_url_target ?>">
	<input type="hidden" name="return_url" 					value="<?= $return_url ?>">
	<input type="hidden" name="cancel_url" 					value="<?= $cancel_url ?>">
	<input type="hidden" name="return_url_target" 			value="1">
	<input type="hidden" name="cancel_url_target" 			value="1">
	<input type="hidden" name="language" 					value="<?= $language ?>">
	<input type="hidden" name="confirmation_note" 			value="">
	<input type="hidden" name="pay_from_email" 				value="<?= $pay_from_email ?>">
	<input type="hidden" name="title" 						value="">
	<input type="hidden" name="firstname" 					value="<?= $firstname ?>">
	<input type="hidden" name="lastname" 					value="<?= $lastname ?>">
	<input type="hidden" name="address" 					value="<?= $address ?>">
	<input type="hidden" name="postal_code" 				value="<?= $postal_code ?>">
	<input type="hidden" name="city" 						value="<?= $city ?>">
	<input type="hidden" name="state" 						value="<?= $state ?>">
	<input type="hidden" name="country" 					value="<?= $country ?>">
	<input type="hidden" name="date_of_birth" 				value="<?= $date_of_birth ?>">
	<input type="hidden" name="amount" 						value="<?= $amount ?>">
	<input type="hidden" name="currency" 					value="EUR">
	<input type="hidden" name="rec_cycle" 					value="day">
	<input type="hidden" name="payment_methods" 			value="<?= $payment_methods ?>">
	<input type="hidden" name="submit_id" 					value="Submit">
	
</form>
<script language="JavaScript">document.oc.submit();</script>
Como os digo, funciona perfectamente, pero en IE la pantalla se queda en blanco.

Última edición por n95serie; 14/01/2011 a las 15:36

Etiquetas: ajax, iframe
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 17:32.