Enviar un formulario mediante ajax (Jquery)

2,010 views
Skip to first unread message

Jose Ortega

unread,
Jul 12, 2011, 5:36:49 PM7/12/11
to symfo...@googlegroups.com
Estoy queriendo enviar un formulario con Jquery ajax, pero no lo doy en el clavo..., tengo muy poco conocimiento sobre jquery y ajax así que googleando encontré algunos códigos pero no me ha funcionado.... Necesito Sus ayudas.

Estoy haciendo de la siguiente manera.
$(document).ready(function() {
          $('#form_ajax').submit(function(e){
             e.preventDefault();
               $.ajax({
                 type: "POST",
                 url: $(this).attr('action'),
                 data: $(this).serialize(),
                 success: function(data){
                   $('#reault').append(data);
                 }
               })
               return false;
            });
}

Se envía el formulario por no con ajax, no se en que estoy fallando.

el formulario es esto..

<form id="form_ajax" action="<?php echo url_for('demo/create')?>">
  <?php echo $form?>  
  <button type="submit">Guardar</button>
</form>

<div id="result"></div>

Julian Lasso

unread,
Jul 12, 2011, 5:49:58 PM7/12/11
to symfo...@googlegroups.com
tu falla está en que estás utilizando el botón tipo submit
utilizalo tipo botton y verás que funciona ;)

<button type="button">Guardar</button>

-- 
Julian Lasso
Enviado con Sparrow
--
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a symfo...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a symfony-es+...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/symfony-es?hl=es.

Jose Ortega

unread,
Jul 12, 2011, 5:59:48 PM7/12/11
to symfo...@googlegroups.com
Gracias Julian por la respuesta... Al poner type="button"  no se realiza ningún evento... no se que pasa...

ogonz...@uci.cu

unread,
Jul 12, 2011, 5:59:52 PM7/12/11
to symfo...@googlegroups.com

A simple vista n veo ningún error prueba a ver quitando el return false; pues es lo único que veo ahí, veo que te falta un paréntesis en la llave final pues la instrucción ready sería $(document).ready(function(){}); y veo que te falta el último paréntesis el firebug no te da ningún error???;

--

Julian Lasso

unread,
Jul 12, 2011, 6:01:52 PM7/12/11
to symfo...@googlegroups.com
ok mira la cosa es así ;)

$(document).ready(function() {
          $('#enviar').click(function(e){
             e.preventDefault();
               $.ajax({
                 type: "POST",
                 url: $(this).attr('action'),
                 data: $(this).serialize(),
                 success: function(data){
                   $('#reault').append(data);
                 }
               })
               return false;
            });
}

<form id="form_ajax" action="<?php echo url_for('demo/create')?>">
  <?php echo $form?>  
  <button type="button" id="enviar">Guardar</button>
</form>

<div id="result"></div>

-- 

Julian Lasso
Enviado con Sparrow

El martes 12 de julio de 2011 a las 16:59, Jose Ortega escribió:

Gracias Julian por la respuesta... Al poner type="button"  no se realiza ningún evento... no se que pasa...

--

ogonz...@uci.cu

unread,
Jul 12, 2011, 6:02:03 PM7/12/11
to symfo...@googlegroups.com

Viendo este tema en la documentación de jquery dice que puede ser de tipo submit lo que veo que ahí declaran el botón como un input y no con la etiqueta < button como lo tienes en el ejemplo

--

ogonz...@uci.cu

unread,
Jul 12, 2011, 6:03:11 PM7/12/11
to symfo...@googlegroups.com

Mirándolo bien esa sería otra forma de solucionarlo

Julian Lasso

unread,
Jul 12, 2011, 6:04:49 PM7/12/11
to symfo...@googlegroups.com
Yo he intentado eso antes, de controlar el submit con jQuery en creo que en chrome funciona pero en firefox no lo respeta y lo manda de una, entonces lo mejor es controlar el evento click del boton enviar

-- 
Julian Lasso
Enviado con Sparrow
Adjuntos:
- smime.p7s

Jose Ortega

unread,
Jul 12, 2011, 6:28:00 PM7/12/11
to symfo...@googlegroups.com
Gracias Julian y ogonz...@uci.cu, por su tiempo..,,

He probado todo lo que me han dicho... 

ogonz...@uci.cu Lo puse <input type="submit" value="guardar" />, no funciono sigue guardando sin ajax...

Julian lo he probado con el evento click.. tampoco ha funcionado


No se que puede ser....

Alguna idea,,,,,

Julian Lasso

unread,
Jul 12, 2011, 6:37:12 PM7/12/11
to symfo...@googlegroups.com
viste el mensaje donde te mando las modificaciones?
donde pones tipo button y donde haces el evento click pero en el id del button??

-- 
Julian Lasso
Enviado con Sparrow
--

Julian Lasso

unread,
Jul 12, 2011, 6:37:52 PM7/12/11
to symfo...@googlegroups.com
por si no lo viste te lo mando de nuevo

$(document).ready(function() {
          $('#enviar').click(function(e){
             e.preventDefault();
               $.ajax({
                 type: "POST",
                 url: $(this).attr('action'),
                 data: $(this).serialize(),
                 success: function(data){
                   $('#reault').append(data);
                 }
               })
               return false;
            });
}

<form id="form_ajax" action="<?php echo url_for('demo/create')?>">
  <?php echo $form?>  
  <button type="button" id="enviar">Guardar</button>
</form>

<div id="result"></div>

-- 
Julian Lasso
Enviado con Sparrow

Jose Ortega

unread,
Jul 12, 2011, 6:44:31 PM7/12/11
to symfo...@googlegroups.com
Julian lo hice de esa forma pero al presionar el botón no realiza ningún evento...

La duda es que cuando lo pongo id al boton ... no se si esta parte lo va interpretar jquery:

url: $form.attr("action"),

..............






Julian Lasso

unread,
Jul 12, 2011, 6:47:17 PM7/12/11
to symfo...@googlegroups.com
utilizalo de la siguiente manera a ver que pasa ;) y nos cuentas ;)

$(document).ready(function() {
          $('#enviar').click(function(e){
             e.preventDefault();
               $.ajax({
                 type: "POST",
                 url: $('#form_ajax').attr('action'),
                 data: $('#form_ajax').serialize(),
                 success: function(data){
                   $('#reault').append(data);
                 }
               })
               return false;
            });
}

<form id="form_ajax" action="<?php echo url_for('demo/create')?>">
  <?php echo $form?>  
  <button type="button" id="enviar">Guardar</button>
</form>

<div id="result"></div>

-- 
Julian Lasso
Enviado con Sparrow

Jose Ortega

unread,
Jul 12, 2011, 7:35:18 PM7/12/11
to symfo...@googlegroups.com
Julian y ogonz...@uci.cu...


De nuevo gracias... fue un error mio, pero no llego a entender a que se debe esto... Ahora les cuento.

Desde la lista o indexSuccess del modulo cargaba el formulario via ajax, hasta ahí todo bien, ahora como  el
formulario estaba ya cargada en el index via ajax, yo escribí todo el código ajax para guardar el form también en el index
y eso era el error..... ahora el código para cargar el form via ajax lo dejé en el index, y el código ajax para guardar el form lo
he puesto en el partial _form  ... y ahora ya se guarda via ajax......

Así que mil disculpas... pero ante todo  he aprendido que $('#form_ajax').submit(function(e)....  o.... la otra forma como lo dijo
Julian  $('#button').click(function(e) ..... estas dos formas de realizar de igual manera funcionan perfecto.

Gracias....:)

ogonz...@uci.cu

unread,
Jul 12, 2011, 7:48:45 PM7/12/11
to symfo...@googlegroups.com

Jejeje por nada estamos para ayudarnos

 

Saludos

 

 

Ing. Osay González Fuentes

Universidad de las Ciencias Informáticas

Ciudad de la Habana, Cuba

 

 

 

From: symfo...@googlegroups.com [mailto:symfo...@googlegroups.com] On Behalf Of Jose Ortega
Sent: martes, 12 de julio de 2011 19:35
To: symfo...@googlegroups.com
Subject: Re: [symfony-es] Enviar un formulario mediante ajax (Jquery)

 

Julian y ogonz...@uci.cu...

--

Iñaki Arroyo Nebreda

unread,
Jun 4, 2014, 4:47:05 AM6/4/14
to symfo...@googlegroups.com
Buenos dias.
Gracias por vuestras soluciones, me han servido para solvencionar mi problema, yo también he tenido que incluir el jquery en el partial_form debido a que si lo ponía en el index tampoco me recogía el evento y no se validaba por ajax sino de manera normal.

¿Jose Ortega has podido saber a que se debe esto?
Reply all
Reply to author
Forward
0 new messages