Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Problema al enviar textarea con AJAX y Jquery

Estas en el tema de Problema al enviar textarea con AJAX y Jquery en el foro de Jquery en Foros del Web. Hola a todos. Tengo un problema a la hora de enviar un textarea, y es que el servidor no me devuelve nada. El código javascript ...
  #1 (permalink)  
Antiguo 15/08/2012, 08:22
 
Fecha de Ingreso: octubre-2008
Mensajes: 32
Antigüedad: 16 años, 1 mes
Puntos: 0
Problema al enviar textarea con AJAX y Jquery

Hola a todos. Tengo un problema a la hora de enviar un textarea, y es que el servidor no me devuelve nada.

El código javascript:

Código Javascript:
Ver original
  1. $('#next').on({
  2.     click: function() {
  3.     var datas=$('#form2').serializeArray();
  4.     var strtmp="list_in=";
  5.     $.each(datas,function(i,data){strtmp=strtmp+data.value;});
  6.     alert(strtmp);
  7.             $.ajax({
  8.             url: 'process2.php',
  9.             type: 'POST',
  10.             data: strtmp,  
  11.             async: true,
  12.             beforeSend: function (obj) {$('#load').html('<img alt="loading" src="img/loading.gif">');},
  13.             complete: function(obj,check) {if (check!="success") $('#load').html('Error').addClass('imp2');},
  14.             success: function(resp) {$('#load').html('');
  15.             alert(resp);
  16.             //$('#list_out').removeAttr('disabled').html(resp).focus();$('#list_in').attr('disabled','disabled');
  17.             }
  18.             });
  19.     }
  20. });

El código php:

Código PHP:
Ver original
  1. //Get post data
  2.     $list_in=$_POST["list_in"];
  3.    
  4.     //Define the vars
  5.     $strtmp="";
  6.  
  7.     //Development
  8.  
  9.         if (isset($list_in))
  10.             {
  11.             preg_match_all('/[\w-\.]+\@([\w-]+\.)+[\w-]{2,4}/',$list_in,$matches);
  12.            
  13.                 for ($i=0;$i<count($matches[0]);$i++)
  14.                     $strtmp=$strtmp.$matches[0][$i]."\n";
  15.                    
  16.                 return $strtmp;
  17.             }

Lo que quiero hacer es enviar los datos del textarea por ajax y que me devuelva una cadena con los emails que había en esos datos.

El código php lo he probado y funciona a la perfección. Así que donde falla es en javascript. La cadena la recojo con serializeArray() ya que serialize() me transforma las @, los puntos, etc. y me deja el php inservible.

Gracias por adelantado

Última edición por Tik3r; 15/08/2012 a las 08:38
  #2 (permalink)  
Antiguo 15/08/2012, 09:43
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 8 meses
Puntos: 47
Respuesta: Problema al enviar textarea con AJAX y Jquery

Hola otra vez xD, 2 cosas en primer lugar creo que si estas dentro de una funcion jquery deberias recoger un valor usando jquery en lugar de javascript por lo tanto:

Código Javascript:
Ver original
  1. $.each(datas,function(i,data){strtmp=strtmp+data.value;});

deberia ser:

Código Javascript:
Ver original
  1. $.each(datas,function(i,data){strtmp=strtmp+$(data).val();});

por otro lado los textarea si mal no recuerdo no tienen un value sino que debes recoger su valor mediante text osea que quedaria:

Código Javascript:
Ver original
  1. $.each(datas,function(i,data){strtmp=strtmp+$(data).text();});

Pruebalo y me avisas como te fue.

Saludos
  #3 (permalink)  
Antiguo 15/08/2012, 10:25
 
Fecha de Ingreso: octubre-2008
Mensajes: 32
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Problema al enviar textarea con AJAX y Jquery

gracias de nuevo x la respuesta.

Ninguno de tus dos códigos funciona ya que stoy usando serializeArray()

Código Javascript:
Ver original
  1. var datas=$('#form2').serializeArray();

Lo que recibe data es un array con el nombre del textaria y su valor.

El problema tiene que estar al enviarlo.... voy a hacerlo todo con serialize (sustituiré los caracteres raros) a ver si funciona y os comento...
  #4 (permalink)  
Antiguo 15/08/2012, 10:48
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 8 meses
Puntos: 47
Respuesta: Problema al enviar textarea con AJAX y Jquery

Prueba a ver si quitando los textarea envia el resto de los elemntos del formulario. como te dije creo que los textarea no tienen un value sino que lo que se les recoje es su text.

Saludos
  #5 (permalink)  
Antiguo 15/08/2012, 12:08
 
Fecha de Ingreso: octubre-2008
Mensajes: 32
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Problema al enviar textarea con AJAX y Jquery

Despues de estar debugueando un buen rato he llegado a esta conclusión:

Todo me funciona, es decir el ajax, el enviarlo, el procesamiento de php... hasta ke llega a esto:

Código PHP:
Ver original
  1. return $strtmp;

Alguien sabe como tiene que recibir una cadena mediante jquery?

si pongo
Código PHP:
Ver original
  1. echo $strtmp;
si me funciona.... aunque abre un pop up con todos los mails que habia en el textarea....

PD: Todo solucionado.... era un alert que tenia yo puesto de más jeje cambiando el return x el echo todo va perfect :D

Última edición por Tik3r; 15/08/2012 a las 12:30

Etiquetas: ajax, funcion, html, javascript, php, textarea
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 17:30.