Foros del Web » Programando para Internet » Jquery »

envio de datos formulario a php con jquery

Estas en el tema de envio de datos formulario a php con jquery en el foro de Jquery en Foros del Web. Hola a todos. Estoy haciendo un sistema de comentarios, con ajax y php de la siguiente forma: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original < ...
  #1 (permalink)  
Antiguo 05/07/2010, 17:28
Avatar de after  
Fecha de Ingreso: junio-2006
Ubicación: De marte
Mensajes: 791
Antigüedad: 18 años, 6 meses
Puntos: 10
envio de datos formulario a php con jquery

Hola a todos.

Estoy haciendo un sistema de comentarios, con ajax y php de la siguiente forma:
Código Javascript:
Ver original
  1. <script>
  2.  
  3.     $(function(){
  4.         $('#facebook').val('').blur().focus(function(){
  5.             if($(this).data('facebook')) return false;
  6.             $(this).data('facebook', true);
  7.             $(this).css({
  8.                 width   : $(this).outerWidth() - 36
  9.             });
  10.             $('<img src="images/facebook.gif" class="avatar" style="margin-top:1px;position:absolute;"/>'+
  11.                     '<span class="avatar" style="display:inline-block;width:36px;height:30px"></span>').insertBefore($(this));
  12.             $('<img src="images/facebook_comment.png" class="avatar" id="post" style="float:right;cursor:pointer;margin-top:2px" />').insertAfter($(this));
  13.         });
  14.         $('#post').live('click', function(){
  15.                    
  16.             var clone = $(this).parent().clone();
  17.             var txt = $(document.createElement('span')).html('<b style="color:#3B5998">Facebook</b> '+$(this).parent().find('textarea').val()).css({
  18.                 display     : 'inline-block',
  19.                 width       : $(this).parent().find('textarea').width(),
  20.                 overflow    : 'hidden'
  21.             });
  22.                    
  23.             txt.insertBefore(clone.find('textarea'));
  24.             clone.insertBefore($(this).parent()).find('textarea').remove();
  25.             clone.find('#post').remove();
  26.             $(this).parent().find('textarea').val('').blur();
  27.            
  28.             $.ajax({
  29.     type: 'POST',
  30.     data: 'texto='+$(this).parent().find('textarea').val(),
  31.     url: 'receptor.php',
  32.    
  33.     success: function(data){
  34.       alert( "Comentario guardado: " + data );
  35.  
  36.     }
  37. });
  38.            
  39.         });
  40.  
  41.    
  42.     });
  43.    
  44. </script>

Y en php:
Código PHP:
Ver original
  1. <?php echo $_POST['texto']; ?>

Pero el problema es que la variable no la pasa, queda en blanco.
Alguna idea?
Pd: No soy bueno con el Javascript..
__________________
@ivancamiloGo

Última edición por after; 05/07/2010 a las 18:03
  #2 (permalink)  
Antiguo 05/07/2010, 18:05
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: envio de datos formulario a php con jquery

intenta:

data: 'texto='+$(this).parent().find('textarea').html()

los textarea no tienen propiedad value
  #3 (permalink)  
Antiguo 05/07/2010, 18:09
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Tema movido desde javascript
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 05/07/2010, 18:31
Avatar de after  
Fecha de Ingreso: junio-2006
Ubicación: De marte
Mensajes: 791
Antigüedad: 18 años, 6 meses
Puntos: 10
Respuesta: envio de datos formulario a php con jquery

Ya me va, pero ahora tengo la duda de como hago para que envíe más de dos textbox?
__________________
@ivancamiloGo
  #5 (permalink)  
Antiguo 06/07/2010, 16:41
Avatar de after  
Fecha de Ingreso: junio-2006
Ubicación: De marte
Mensajes: 791
Antigüedad: 18 años, 6 meses
Puntos: 10
Respuesta: envio de datos formulario a php con jquery

Ahora como hago para que en data me envíe los datos de dos textbox y un campo oculto??
"data: 'texto='+$(this).parent().find('textarea').val(),"
__________________
@ivancamiloGo
  #6 (permalink)  
Antiguo 06/07/2010, 19:25
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 15 años
Puntos: 65
Respuesta: envio de datos formulario a php con jquery

podes ocupar el método serialize
http://api.jquery.com/serialize/
  #7 (permalink)  
Antiguo 06/07/2010, 20:36
Avatar de after  
Fecha de Ingreso: junio-2006
Ubicación: De marte
Mensajes: 791
Antigüedad: 18 años, 6 meses
Puntos: 10
Respuesta: envio de datos formulario a php con jquery

Cita:
Iniciado por Dany_s Ver Mensaje
podes ocupar el método serialize
http://api.jquery.com/serialize/
He buscado y encontré que serialize lo usan con forms, pero yo en esta ocasión no estoy usando ningún form

Lo que hace el script es enviarlo al hacer click en el botón

Código Javascript:
Ver original
  1. $('#post').live('click', function(){
  2.            
  3. $.ajax({
  4.     type: 'POST',
  5.    data: 'texto='+$(this).parent().find('textarea').val(),
  6.     url: 'receptor.php',
  7.    
  8.    
  9.     success: function(data){
  10.       alert( "Su comentario fue agregado: : " + data );
  11.  
  12.     }
  13. });
Intente usar un form pero para eso también tendría que insertar un Botón para que en una función .submit(function(){... lo envíe. Pero con jquery ya le tengo un botón.

Pongo todo el código completo.


<
Código Javascript:
Ver original
  1. script>
  2.  
  3.     $(function(){
  4.         $('#facebook').val('').blur().focus(function(){
  5.             if($(this).data('facebook')) return false;
  6.             $(this).data('facebook', true);
  7.             $(this).css({
  8.                 width   : $(this).outerWidth() - 36
  9.             });
  10.             $('<img src="images/facebook.gif" class="avatar" style="margin-top:1px;position:absolute;"/>'+
  11.                     '<span class="avatar" style="display:inline-block;width:36px;height:30px"></span>').insertBefore($(this));
  12.             $('<img src="images/facebook_comment.png" class="avatar" id="post" style="float:right;cursor:pointer;margin-top:2px" />').insertAfter($(this));
  13.         });
  14.         $('#post').live('click', function(){
  15.            
  16. $.ajax({
  17.     type: 'POST',
  18.    data: 'texto='+$(this).parent().find('textarea').val(),
  19.     url: 'receptor.php',
  20.    
  21.    
  22.     success: function(data){
  23.       alert( "Su comentario fue agregado: : " + data );
  24.  
  25.     }
  26. });
  27.  
  28.  
  29.  
  30.             var clone = $(this).parent().clone();
  31.             var txt = $(document.createElement('span')).html('<b style="color:#3B5998">Facebook</b> '+$(this).parent().find('textarea').val()).css({
  32.                 display     : 'inline-block',
  33.                 width       : $(this).parent().find('textarea').width(),
  34.                 overflow    : 'hidden'
  35.             });
  36.                    
  37.             txt.insertBefore(clone.find('textarea'));
  38.             clone.insertBefore($(this).parent()).find('textarea').remove();
  39.             clone.find('#post').remove();
  40.             $(this).parent().find('textarea').val('').blur();
  41.            
  42.            
  43.            
  44.         });
  45.  
  46.    
  47.     });
  48.    
  49. </script>
__________________
@ivancamiloGo
  #8 (permalink)  
Antiguo 07/07/2010, 04:26
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 15 años
Puntos: 65
Respuesta: envio de datos formulario a php con jquery

no necesitas un form ni tampoco un submit, puedes seleccionar algunos inputs y codificar al hacer click o el evento que quieras
  #9 (permalink)  
Antiguo 07/07/2010, 07:55
Avatar de after  
Fecha de Ingreso: junio-2006
Ubicación: De marte
Mensajes: 791
Antigüedad: 18 años, 6 meses
Puntos: 10
Respuesta: envio de datos formulario a php con jquery

Cita:
Iniciado por Dany_s Ver Mensaje
no necesitas un form ni tampoco un submit, puedes seleccionar algunos inputs y codificar al hacer click o el evento que quieras
Me podrías ayudar con un ejemplo?
__________________
@ivancamiloGo
  #10 (permalink)  
Antiguo 07/07/2010, 08:50
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 15 años
Puntos: 65
Respuesta: envio de datos formulario a php con jquery

formo el query string con los input que tienen clase "serializar", el input apellido no lo tiene


Código Javascript:
Ver original
  1. <head>
  2. <title>Prueba</title>
  3. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  4. <script>
  5. $(function(){
  6.     $('#ver').click( function (){
  7.         alert( $(".serializar").serialize() );
  8.     });
  9. });
  10. </script>
  11. </head>
  12. <body>
  13.     Nombre <input type="text" class="serializar" name="nombre" value="" />
  14.     Apellido <input type="text" name="apellido" value="" /><br />
  15.     M: <input type="radio" class="serializar" name="sexo" value="M"> F:<input type="radio" class="serializar" name="sexo" value="F"><br />
  16.  
  17.     <a href="#" id="ver">ver</a>
  18. </body>
  19. </html>
  #11 (permalink)  
Antiguo 07/07/2010, 09:04
Avatar de after  
Fecha de Ingreso: junio-2006
Ubicación: De marte
Mensajes: 791
Antigüedad: 18 años, 6 meses
Puntos: 10
Respuesta: envio de datos formulario a php con jquery

Cita:
Iniciado por Dany_s Ver Mensaje
formo el query string con los input que tienen clase "serializar", el input apellido no lo tiene


Código Javascript:
Ver original
  1. <head>
  2. <title>Prueba</title>
  3. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  4. <script>
  5. $(function(){
  6.     $('#ver').click( function (){
  7.         alert( $(".serializar").serialize() );
  8.     });
  9. });
  10. </script>
  11. </head>
  12. <body>
  13.     Nombre <input type="text" class="serializar" name="nombre" value="" />
  14.     Apellido <input type="text" name="apellido" value="" /><br />
  15.     M: <input type="radio" class="serializar" name="sexo" value="M"> F:<input type="radio" class="serializar" name="sexo" value="F"><br />
  16.  
  17.     <a href="#" id="ver">ver</a>
  18. </body>
  19. </html>

Código Javascript:
Ver original
  1. $('#post').live('click', function(){
  2.            
  3. $.ajax({
  4.     type: 'POST',
  5.    data: $(".serializar").serialize(),
  6.     url: 'receptor.php',
  7.    
  8.    
  9.    
  10. });
Perfecto!
Gracias por tu ayuda.!
__________________
@ivancamiloGo

Etiquetas: envio, php, 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 10:11.