[ajax] Como enviar todo un formulario (preferentemente con jQuery)

519 views
Skip to first unread message

Mariano Gomez

unread,
Nov 10, 2010, 10:51:25 AM11/10/10
to php...@googlegroups.com
Hola gente, estoy necesitando enviar todo un formulario por ajax, pero siempre lo que he pasado por ajax son valores concretos... alguien sabe como hacer esto? Y si es posible, con jquery pq estoy trabajando con ese framework

Pablo Martelletti

unread,
Nov 10, 2010, 10:53:04 AM11/10/10
to php...@googlegroups.com
Hola,

Mira, jquery tiene un plugin para ésto, que lo que haces es tomar
todos los valores de un formulario, y enviarlos al servidor. El mismo
lo podés encontrar acá:

http://jquery.malsup.com/form/

Espero que te sirva, cualquier duda avisame que ahora mismo estoy
trabajando con el.

Saludos!

El día 10 de noviembre de 2010 12:51, Mariano Gomez
<marian...@gmail.com> escribió:

> --
> Has recibido este mensaje porque estás suscrito al grupo "Grupo PHP
> Argentina" de Grupos de Google.
> Para publicar una entrada en este grupo, envía un correo electrónico a
> php...@googlegroups.com.
> Para anular tu suscripción a este grupo, envía un correo electrónico a
> php-arg+u...@googlegroups.com
> Para tener acceso a más opciones, visita el grupo en
> http://groups.google.com/group/php-arg?hl=es.
>

--
Pablo María Martelletti

diego

unread,
Nov 10, 2010, 11:06:10 AM11/10/10
to php...@googlegroups.com
la parte jquery..
function enviar(){
    $.ajax({
        type: "POST",
        url: "enviar.php",
        data: ({data : $('#pform1').serialize()}),
    });
}

la parte de php es cuestion de levantar todo el get y mandarlo

Maximiliano Churichi

unread,
Nov 10, 2010, 11:11:49 AM11/10/10
to php...@googlegroups.com
Sino tmb tenes serializeArray(), q te devuelve un array de objetos
[
{
name: 'usuario',
pass: 'yo'
},
{
name: 'password',
value: '123lalal'
}
]

Maximiliano Churichi
<mchu...@gmail.com>

Mariano Gomez

unread,
Nov 10, 2010, 11:19:58 AM11/10/10
to php...@googlegroups.com
Pablo ya baje el plugin que me dijiste, si no puedo hacerlo "a mano", lo hago con ese plugin, el tema es que por un tema de carga de archivos prefiero usar la menor cantidad de plugins posible.
diego, estoy intentando usar lo que me comentas, pero como puedo confirmar la info que envia?
En el archivo php que recibe los datos hago (simplificando un poco lo que hace el metodo):

print_r($_POST)

y en el metodo que hace la invocacion:

success: function(data){
                alert(data);
            }

pero no me muestra nada. Mas: me fijo en la consola de firebug y no figura ninguna respuesta a la peticion... que me falta? (aparte de 5 pa'l peso jejeje)

Pablo Martelletti

unread,
Nov 10, 2010, 2:12:40 PM11/10/10
to php...@googlegroups.com
si vas a trabajar con post, yo siempre lo hice de esta manera:

$.post("unaurl.php", $(form).serialize(), function(data){
alert(data);
});

Fijate si eso te funciona. Obviamente, del lado del php tenes que
hacer un print o un echo de lo que quieras que aparezca. Es decir, en
"unaurl.php", deberias, al menos como prueba, tener algo asi:

echo "devuelve un valor".

Por tanto, el alert deberia decir "devuleve un valor".

Ya despues de manejar esto, podrias hacer que el php devuelva datos en
formato JSON, o XML, pero eso supongo que lo vas a hacer despues de
que logres que ande.


Saludos,

El día 10 de noviembre de 2010 13:19, Mariano Gomez
<marian...@gmail.com> escribió:

Mariano Gomez

unread,
Nov 10, 2010, 2:33:09 PM11/10/10
to php...@googlegroups.com
Ahi lo pude hacer andarrr!!!!

Por si alguno llega alguna vez a necesitar solucion del tema, aca les paso como lo hice:
ACLARACION: Use serializeArray() pq serialize() me devolvia todo con la codificacion de una url y no me gustaba mucho.

1) Primero, tomo todos los inputs del formulario (el cual tiene como id "edicionRapida") y los coloco en un objeto/arreglo llamado datos:

fields = $("#edicionRapida :input").serializeArray();
        datos = {};
        jQuery.each(fields, function(i, item){
            datos[item['name']]=item['value'];
        });


2) Luego lo coloco como parametro de la peticion:

$.ajax({
            type: "POST",    url: "donde/va/la/peticion/,
            data: datos,
            success: function(rawData){
                alert(rawData);
            }
        });


Gracias por haberme ayudado a los que contestaron!!

Pablo Z - Medaneros

unread,
Nov 12, 2010, 8:40:53 AM11/12/10
to php...@googlegroups.com
Amigos

Busco un programador PHP + CAKE + JQUERY para terminar un importante
proyecto.
Zona de trabajo: Floresta, Buenos Aires, Argentina
Dias y horario de trabajo: a convenir.
Salario: a convenir.
Se ofrece: Flexibilidad de horarios, muy buen ambiente de trabajo,
coordialidad y amistad.
Contactarse a este email

Saludos
Pablo


Reply all
Reply to author
Forward
0 new messages