Foros del Web » Programando para Internet » Javascript »

como procesar los datos de un formulario sin recargar pagina

Estas en el tema de como procesar los datos de un formulario sin recargar pagina en el foro de Javascript en Foros del Web. Hola no se muy bien la logica que debo seguir para realizar mi codigo, os comento en que consiste, trata de un formulario metido dentro ...
  #1 (permalink)  
Antiguo 08/05/2012, 07:34
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 6 meses
Puntos: 10
como procesar los datos de un formulario sin recargar pagina

Hola no se muy bien la logica que debo seguir para realizar mi codigo, os comento en que consiste, trata de un formulario metido dentro de un div contenedor donde una vez rellenado el formulario quiero procesarlo para guardar los datos en una base de datos , bien normalmente en el formulario en el atributo action='' ponia la direcion donde quiero que se procese los datos, pero si quiero que se procese los datos en el mismo script mediante ajax para no recargar toda la pagina solo se recarge el contenido donde estaba el formulario osea en el div contenedor, como tendria que hacerlo, pongo un ejemplo:

Código HTML:
Ver original
  1. <div id='contenedor'>
  2. <form method='post' action='procesar.php'>
  3. <label>nombre</label><input type='text' name='nombre'>
  4. <label>edad</label><input type='text' name='edad'>
  5. <input type='submit' value='enviar'>
  6. </form>
  7. </div>

procesar.php

Código PHP:
Ver original
  1. <?php
  2. //aqui todo el codigo para procesar los datos
  3. ?>

bien entonces como haria para procesar los datos en el mismo script dentro del contenedor, mediante ajax, alguna ayuda, saludos.
  #2 (permalink)  
Antiguo 08/05/2012, 07:50
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 6 meses
Puntos: 10
Respuesta: como procesar los datos de un formulario sin recargar pagina

bueno deciros que la manera que se me ocurrio a mi de hacerlo era esta:

osea creo una funcion ajax donde llamo a un script php donde procesare los datos, a esta funcion js le pasaria los parametros de los valores de los campos, pero claro en este caso seria solo dos valores, pero si estamos tratando con un formulario que tiene muchos campos no creo que sea la forma correcta de hacerlo, mi idea era un funcion algo asin:

Código Javascript:
Ver original
  1. function procesarDatos(nombre,edad) {
  2.    var Ajax=http();
  3.    Ajax.open("get","procesar.php?nombre=" + nombre + "&edad=" + edad, true);
  4.    Ajax.onreadystatechange = function() {
  5.       if (Ajax.readyState == 4 && (Ajax.status == 200 || Ajax.status == 501)){
  6.                document.getElementById('contenedor').innerHTML=Ajax.responseText;
  7.       }
  8.    }
  9. Ajax.send(null);
  10. }
  11.  
  12. /*creandole en el boton de envio un bottom y llamando asin a la funcion:*/
  13.  
  14. onclick='procesarDatos(form.nombre.value,form.edad.value)';

aparte tampoco sabria como hacerlo si cuando el formulario contiene un campo tipo archivo,

Saludos.

Última edición por pithon; 08/05/2012 a las 07:55
  #3 (permalink)  
Antiguo 08/05/2012, 07:56
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: como procesar los datos de un formulario sin recargar pagina

varios errores de concepto

Cita:
<form name="consulta" action="precesa.php" method="post" onsubmit="procesarDatos(this); return false">
....
<input type="submit" value="Submit" name="Submit">

var url = 'precesa.php?nombre='+val[0].value+'&edad='+val[1].value;
ajax.open("get", url, true);
fíjate que val es una colección y por lo tanto puedes recorrerla
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #4 (permalink)  
Antiguo 08/05/2012, 07:59
 
Fecha de Ingreso: junio-2010
Mensajes: 142
Antigüedad: 14 años, 5 meses
Puntos: 5
Respuesta: como procesar los datos de un formulario sin recargar pagina

Aquí te dejo un ejemplo muy sencillo usando jquery y la función load() RECOMENDABLE por lo sencilla que es.

http://glamoureventos.site90.net/html/

y te puedes descargar el archivo desde aquí:

http://glamoureventos.site90.net/html/html.rar

Me comentas como te fue.
  #5 (permalink)  
Antiguo 08/05/2012, 08:27
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 6 meses
Puntos: 10
Respuesta: como procesar los datos de un formulario sin recargar pagina

IsaBelM gracias por tu explicacion ahora lo tengo mas claro, pero aún no se como se tendria que hacer si hay un campo type='file'.

rossijona, gracias por los enlaces, me los mirare y te comentare que tal me fue.

saludos.
  #6 (permalink)  
Antiguo 08/05/2012, 08:36
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: como procesar los datos de un formulario sin recargar pagina

si tu pretensión es subir una imagen, no estás bien encimando. necesitas un lenguaje del servidor
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #7 (permalink)  
Antiguo 08/05/2012, 08:46
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 6 meses
Puntos: 10
Respuesta: como procesar los datos de un formulario sin recargar pagina

IsaBelM mi intencion es guardar estos datos en una base de datos, claro que necesito un lenguaje del lado del servidor, pero quiero procesarlo en el mismo script donde tengo el formulario, osea dentro del contenido div, yo en la funcion procesarDatos(), llamo a un script llamado procesardatos.php que es aqui donde guardo las datos del formulario en una base de datos, recojiendo los valores del formulario como me comentastes que habia que hacerlo, creo que me explique mal, espero que ahora se me entienda mejor, un saludo.
  #8 (permalink)  
Antiguo 08/05/2012, 09:07
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 6 meses
Puntos: 10
Respuesta: como procesar los datos de un formulario sin recargar pagina

Cita:
Iniciado por rossijona Ver Mensaje
Aquí te dejo un ejemplo muy sencillo usando jquery y la función load() RECOMENDABLE por lo sencilla que es.

http://glamoureventos.site90.net/html/

y te puedes descargar el archivo desde aquí:

http://glamoureventos.site90.net/html/html.rar

Me comentas como te fue.
Gracias por el enlace, pero justo eso no es el problema que tengo, yo tengo un div contenedor con un formulario, y quiero procesar en este mismo div contenedor los datos o procesar o verificar los datos y por supuesto desde un lenguaje del lado del servidor en este caso usaria php, no se si os estoy liando mas si no entendeis mis dudas decirmelo y mostrare un ejemplo, un saludo.
  #9 (permalink)  
Antiguo 08/05/2012, 14:48
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: como procesar los datos de un formulario sin recargar pagina

lo que me queda claro es que no quieres subir una imagen, sino guardar su ruta. por lo tanto, si has seguido las indicaciones que te dí, no veo donde está el problema.

al hacer un insert, te recomendaría que tratases los controles como array. siempre y cuando los controles estén en el mismo orden que los campos de tu tabla
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #10 (permalink)  
Antiguo 09/05/2012, 01:14
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 6 meses
Puntos: 10
Respuesta: como procesar los datos de un formulario sin recargar pagina

hola IsaBelM, gracias por tu aclaracion, pero entonces no me queda claro como seria la manera correcta de guardar la imagen en el servidor, donde tengo que poner el codigo o donde invocarlo? realmente la funcion que me explicastes arriba la utilizaria para pasar los datos del formulario al script php que procesa y asin el resultado de este procesamiento mostrarlo en la misma pagina que estaba el resultado, no se si la logica que le estoy empreando al codigo es la correcta, cualquier sugerencia bienvenida sea, saludos.
  #11 (permalink)  
Antiguo 09/05/2012, 07:06
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: como procesar los datos de un formulario sin recargar pagina

me confundes. ahora dices que sí quieres subir una imagen al servidor. así que primero vamos a ello
http://www.forosdelweb.com/f18/subir...rvidor-788905/
http://www.php.net/manual/en/features.file-upload.php
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #12 (permalink)  
Antiguo 09/05/2012, 08:02
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 6 meses
Puntos: 10
Respuesta: como procesar los datos de un formulario sin recargar pagina

Hola IsaBelM, la imagen me queda claro como hay que guardarla en el servidor pero no tengo muy claro como hago esto de manera asincronica, e incluso mostrandola redimensionada en el mismo script, no se si sabes de algun manual donde te explique bien esto, partiendo de esto lo demas ya lo tengo claro para procesar los datos del formulario e incluso los nombres de las imagenes, pero me queda eso guardarla en el servidor una vez la seleciono.

saludos.
  #13 (permalink)  
Antiguo 09/05/2012, 14:33
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: como procesar los datos de un formulario sin recargar pagina

de acuerdo, lee este tema http://www.forosdelweb.com/f13/como-...iframe-957878/
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #14 (permalink)  
Antiguo 10/05/2012, 05:24
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 6 meses
Puntos: 10
Respuesta: como procesar los datos de un formulario sin recargar pagina

Hola IsaBelM, bueno ahora entiendo a que te referias con que necesitaba un lenguaje del lado del servidor, para subir la imagen e incluso manipularla solo se puede hacer del lado del servidor, y si no quiero recargar la pagina es usando un iframe oculto, hasta ahi se como se hace pero me faltaria la parte del js, por ejemplo si tengo la imagen guardada en el servidor como la injecto en el html e incluso ponerle una barra de carga... gracias por tu ayuda.

Saludos
  #15 (permalink)  
Antiguo 10/05/2012, 07:02
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: como procesar los datos de un formulario sin recargar pagina

la verdad es que estoy algo perdida, pero es mi culpa.

si ya tienes la imagen en el servidor, la insertas como cualquier otra imagen. con respecto a la barra de carga, hace poco hice esto. no es exactamente una barra de carga
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #16 (permalink)  
Antiguo 10/05/2012, 07:20
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 6 meses
Puntos: 10
Respuesta: como procesar los datos de un formulario sin recargar pagina

IsaBelM el perdido soy yo y te estoy liando, bueno mi duda es que la imagen la quiero mostrar de forma asincronica una vez seleciona el usuario la imagen, pero aparte tiene que tener opcion a subir mas de una imagen, esto no se hacerlo sabes de algun tutorial que hable de esto, gracias de todas formas por toda tu ayuda, un saludo.
  #17 (permalink)  
Antiguo 10/05/2012, 11:56
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 6 meses
Puntos: 10
Respuesta: como procesar los datos de un formulario sin recargar pagina

Bueno hice algo muy basico como simplemente mostrar la imagen llamandola con js e insertandola en un div, algo asin:

Código HTML:
Ver original
  1. <form method="post" name='archivo' enctype="multipart/form-data" target="iframe" action="procesar.php" >
  2. <input id='imagen' type="file" name='imagen' onchange="this.archivo.submit();mostrarImagen(document.getElementById('imagen').value)" />
  3. </form>
  4.  
  5. <iframe name="iframe" style="display: none" ></iframe>
  6. <div id='mostrar_imagen'></div>

en el php simplemente subi la imagen y la reduci, esta es la funcion que use para insertar la imagen en el div :

Código Javascript:
Ver original
  1. function mostrarImagen(nombre) {
  2.    var Ajax=objetoAjax();
  3.    Ajax.open("get","procesar.php?nombre="+nombre);
  4.    Ajax.onreadystatechange = function() {
  5.         if (Ajax.readyState == 4 && (Ajax.status == 200 || Ajax.status == 501)){
  6.              document.getElementById('mostrar_imagen').innerHTML=Ajax.responseText;
  7.         }
  8.      }
  9. Ajax.send(null);
  10. }

despues en procesar.php hice algo asin:

Código PHP:
Ver original
  1. <?php
  2. if($_GET['nombre']){
  3. echo "<img src='img_reducidas/".$_GET['nombre']."'>";
  4. }  
  5. ?>

necesitaria ayuda para mejorar el codigo, por ejemplo ponerle un enlace para dar la posibilidad de borrar la imagen al usuario y poder hacerlo con dos o tres campos de archivo, no consigo encontrar la manera alguna ayuda...

saludos.

Etiquetas: ajax, formulario, input, php, procesar
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 10:45.