Foros del Web » Programando para Internet » Javascript »

Mostrar pagina en un DIV al enviar formulario

Estas en el tema de Mostrar pagina en un DIV al enviar formulario en el foro de Javascript en Foros del Web. Hola, ¿Como se puede mostrar en un div una pagina php cuando pulso en un submit que me carga un mensaje en un iframe sin ...
  #1 (permalink)  
Antiguo 18/02/2010, 06:00
Avatar de luicos  
Fecha de Ingreso: febrero-2010
Ubicación: Galicia
Mensajes: 106
Antigüedad: 14 años, 3 meses
Puntos: 0
Mostrar pagina en un DIV al enviar formulario

Hola,
¿Como se puede mostrar en un div una pagina php cuando pulso en un submit que me carga un mensaje en un iframe sin recargar la pagina?

Me explico mejor:
El formulario se envia a una pagina php, que devuelve en un iframe un mensaje de "guardado" o "no guardado" segun el caso con:

Código PHP:
echo "<SCRIPT language='JavaScript' type='text/javascript'>parent.document.getElementById('resultado').innerHTML = 'guardado o error segun sea';</SCRIPT>"
Yo quiero que cuando se guarde el archivo, y me saque el mensaje de guardado, me muestre una pagina.php en otro div.

Es decir, que a traves del formulario subo el archivo, me saca un mensaje en el div 1, y luego en el div2 me muestra una pagina(que viene siendo un extracto de lo que habia en la base de datos + lo que acabo de subir)

Esto me funciona a traves de un enlace con ajax, pero yo quiero que me lo haga automatico al subir un archivo

¿No se podrá llamar a esta funcion que tengo con ajax desde la pagina php que me saca el mensaje de guardado? de la siguiente forma o similar:

Código PHP:
echo "<SCRIPT language='JavaScript' type='text/javascript'>parent.document.getElementById('resultado').innerHTML = '...........AQUI LA FUNCION.............';</SCRIPT>"

Última edición por luicos; 18/02/2010 a las 06:05
  #2 (permalink)  
Antiguo 18/02/2010, 07:15
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Mostrar pagina en un DIV al enviar formulario

puedes enviar el form directamente al iframe:

<form target="name_iframe" ... >

otro medio es utilizar AJAX para directamente modificar el innerHTML del div sin recargar la página
  #3 (permalink)  
Antiguo 18/02/2010, 07:42
 
Fecha de Ingreso: febrero-2010
Mensajes: 19
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Mostrar pagina en un DIV al enviar formulario

Hola yo tengo un problema similar y llevo varios dias con un dolor de cabeza... :D
Tengo un foro que se carga todo dentro de los divs con ajax y cuando paso por un formulario y hago click en submit me recarga toda la pagina... solo quiero que se cargue la página de "se ha guardado correctamente..." dentro del DIV y no recargue todo.

A ver si conseguimos respuesta luicos ;)

Gracias a todos!
  #4 (permalink)  
Antiguo 18/02/2010, 07:46
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Mostrar pagina en un DIV al enviar formulario

Cita:
Iniciado por adhemo Ver Mensaje
Hola yo tengo un problema similar y llevo varios dias con un dolor de cabeza... :D
Tengo un foro que se carga todo dentro de los divs con ajax y cuando paso por un formulario y hago click en submit me recarga toda la pagina... solo quiero que se cargue la página de "se ha guardado correctamente..." dentro del DIV y no recargue todo.

A ver si conseguimos respuesta luicos ;)

Gracias a todos!
si todo funciona con AJAX solo debes cancelar en envío normal del form:
<form onsubmit="return false;" ... >
  #5 (permalink)  
Antiguo 18/02/2010, 07:56
 
Fecha de Ingreso: febrero-2010
Mensajes: 19
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Mostrar pagina en un DIV al enviar formulario

Gracias pero eso ya lo he probado, maycolalvarez, no querría desviar el problema de luicos con el mío... si puedes te agradecería que me ayudaras, aquí está mi caso...


http://www.forosdelweb.com/f77/ajax-javascript-boton-submit-779206/

seguro que encuentras la solución enseguida y era una tontería pero necesito ayuda que soy un poco principiante en AJAX y JAVASCRIPT
Muchísimas gracias!!
  #6 (permalink)  
Antiguo 18/02/2010, 08:59
Avatar de luicos  
Fecha de Ingreso: febrero-2010
Ubicación: Galicia
Mensajes: 106
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Mostrar pagina en un DIV al enviar formulario

Vamos a ver adhemo, creo que no tiene nada que ver tu problema con el mio, o eso me parece.

A lo mejor a ti utilizando un iframe te vale.

Código HTML:
<form action="pagina1.php" method="post" enctype="multipart/form-data" id="fr1" target="iframeUpload">												
<input type="file" name="pl"> <input type="submit" name="guardar" id="guardar" value="Guardar">
</form> <iframe id="iframeUpload" name="iframeUpload" style="display:none"></iframe>						
<div id="mensajeResultado" name="mensajeResultado"></div> 
y luego en la pagina1.php despues de guardar pones esto para que te salga el mensaje en el div id="mensajeresultado":

Código PHP:
echo "<SCRIPT language='JavaScript' type='text/javascript'>parent.document.getElementById('mensajeResultado').innerHTML = 'Mensaje a visualizar en la pagina del formulario....';</SCRIPT>"
Esto te saca el mensaje sin recargar toda la pagina
  #7 (permalink)  
Antiguo 18/02/2010, 09:50
Avatar de luicos  
Fecha de Ingreso: febrero-2010
Ubicación: Galicia
Mensajes: 106
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Mostrar pagina en un DIV al enviar formulario

Os pongo el codigo que tengo, y os explico lo que quiero hacer.
En la pagina principal tengo un formulario, que envia el contenido de un input type file a php_plantillas.php, y aqui guarda el archivo en la tabla plantillas, y luego me saca un mensaje de "guardada en la BD" que sale en el div id="mensajeResultado" a traves del iframe y no recarga la pagina.

Despues tengo un ENLACE que llama a la función Enviar() y que me carga en el div id="contenido" la pagina tipos.php sin recargar la pagina.
La pagina tipos.php hace una consulta a la tabla plantillas y visualiza las plantillas guardadas.

La funcion de la pagina es que se pueda guardar una plantilla, me saque un mensaje de "guardado en la BD" y al mismo tiempo que me cargue el div id="contenido" lo que hay en la tabla y sin recargar toda la pagina

¿COMO PUEDO HACER PARA QUE AL GUARDAR EN LA BD ME VISUALICE LA PAGINA QUE SACA EL CONTENIDO DE LA TABLA PLANTILLAS EN EL DIV CONTENIDO?
Lo que tengo es un enlace, pero yo quiero que funcione al enviar el formulario


PAGINA PRINCIPAL
Código HTML:
<html>
     <head>
              <title>pagina</title>
     <script language="JavaScript" type="text/javascript"  src="cargar.js"></script>
     </head>
<body>

<form action="php_plantillas.php" method="post" enctype="multipart/form-data" id="frplantilla" target="iframeUpload" onSubmit="return validacion1(this)">													
Plantilla:<input type="file" name="plantilla" id="plantilla">	
<input type="submit" name="engadir" id="engadir" value="Engadir">
</form>											
<iframe id="iframeUpload" name="iframeUpload" style="display:none"></iframe>
<div id="mensajeResultado" name="mensajeResultado"></div>

<a href="javascript:Enviar('tipos.php','contenido')" > <!-- ENLACE PARA CARGAR A TRAVES DE AJAX -->ENLACE</a>

<div id="contenido">

</div>

</body>
</html> 

PHP_PLANTILLAS.PHP
Código PHP:
<?php
Se sube el contenido del formulario al servidor y se saca mensaje con
:

echo 
"<SCRIPT language='JavaScript' type='text/javascript'>parent.document.getElementById('mensajeResultado').innerHTML = '* Plantilla guardada en la B.D.';</SCRIPT>";

sino

echo "<SCRIPT language='JavaScript' type='text/javascript'>parent.document.getElementById('mensajeResultado').innerHTML = 'La plantilla no se guardo';</SCRIPT>";

?>

TIPOS.PHP
[PHP]
Codigo que me saca de la tabla plantillas las plantillas que hay en ella
[PHP]


CARGAR.JS (Este codigo funciona bien, solo es para que os deis una idea)
Código:
function ajaxFunction() {
  var xmlHttp;
  
  try {
   
    xmlHttp=new XMLHttpRequest();
    return xmlHttp;
  } catch (e) {
    
    try {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      return xmlHttp;
    } catch (e) {
      
	  try {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        return xmlHttp;
      } catch (e) {
        alert("O teu navegador non soporta AJAX!");
        return false;
      }}}
}




function Enviar(_pagina,capa) {
    var ajax;
    ajax = ajaxFunction();
    ajax.open("POST", _pagina, true);
    ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    ajax.onreadystatechange = function() {
		if (ajax.readyState==1){
			document.getElementById(capa).innerHTML = " Agarde por favor...";
			     }
		if (ajax.readyState == 4) {
		   
                document.getElementById(capa).innerHTML=ajax.responseText; 
		     }}
			 
	ajax.send(null);
}
  #8 (permalink)  
Antiguo 19/02/2010, 03:04
Avatar de luicos  
Fecha de Ingreso: febrero-2010
Ubicación: Galicia
Mensajes: 106
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Mostrar pagina en un DIV al enviar formulario

Bueno, estoy esperando. Digo esto por si alguien me quiere contestar porque sinó me quedo
  #9 (permalink)  
Antiguo 22/02/2010, 03:09
Avatar de luicos  
Fecha de Ingreso: febrero-2010
Ubicación: Galicia
Mensajes: 106
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Mostrar pagina en un DIV al enviar formulario

No es por incordiar, pero es que llevo esperando varios dias y nadie contesta.
¿Será tan dificil? jejejeje
  #10 (permalink)  
Antiguo 22/02/2010, 04:45
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 3 meses
Puntos: 29
Respuesta: Mostrar pagina en un DIV al enviar formulario

Porqué no lo cargas en tu código?
Código Javascript:
Ver original
  1. <?php
  2. //cargas la plantilla en $plantilla desde la bd y luego la metes en el div
  3. echo "<SCRIPT language='JavaScript' type='text/javascript'>parent.document.getElementById('mensajeResultado').innerHTML = '". $plantilla."';</SCRIPT>";
  4.  
  5.  
  6. ?>
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #11 (permalink)  
Antiguo 22/02/2010, 08:27
Avatar de luicos  
Fecha de Ingreso: febrero-2010
Ubicación: Galicia
Mensajes: 106
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Mostrar pagina en un DIV al enviar formulario

Gracias SHuLoSoY tengo que mirarlo a ver si me sale algo.
Luego ya os comento

Etiquetas: enviar, formulario
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 23:33.