Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Envio por post

Estas en el tema de Envio por post en el foro de Frameworks JS en Foros del Web. Hola, foreros: Me estoy volviendo adicto al ajax, jeje. Mirar tengo una funcion para enviar elementos mediante 'post' , el problema es que no funciona ...
  #1 (permalink)  
Antiguo 29/10/2008, 09:47
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 7 meses
Puntos: 19
Envio por post

Hola, foreros:

Me estoy volviendo adicto al ajax, jeje. Mirar tengo una funcion para enviar elementos mediante 'post' , el problema es que no funciona en firefox, he probado a usar firebug y viendo las acciones de javascript me muestra que envia dos post uno detras de otro, algo muy raro...

¿Os suele ocurrir?, este es el codigo que funciona perfectamente en todos los demas navegadores, solo falla en Firefox:

Código PHP:
function addLoadEvent(func
            {
                var 
oldonload window.onload;
                if (
typeof window.onload != 'function'
                    {
                        
window.onload func;
                    }     
                else 
                    {
                        
window.onload = function() 
                            {
                                if (
oldonload
                                    {
                                        
oldonload();
                                    }
                                
func();
                             }
                     }
            }
            
// load:
                
var request false;

                if (
window.XMLHttpRequest
                    {
                        
request = new XMLHttpRequest();
                    }

                function 
form_nick_ajax_validation() 
                    {
                        
                        if (
window.ActiveXObject
                            {
                                try 
                                    {
                                        
request = new ActiveXObject("Msxml2.XMLHTTP");
                                    } 
                                catch(
e
                                    {
                                        try 
                                            {
                                                
request = new ActiveXObject("Microsoft.XMLHTTP");
                                            } 
                                        catch(
e
                                            {
                                                
request false;
                                            }
                                     }
                            }
                        if (
request
                            {
                                
                                
request.onreadystatechange form_nick_ajax_receibe;
                                
request.open("POST""xxxx.php");
                                
request.setRequestHeader('Content-Type''application/x-www-form-urlencoded;');
                                
request.send
                                    
("nick="+encodeURIComponent(form_nick_id.value));
                            }
                    }
            function 
form_nick_ajax_receibe() 
                {
                    if (
request.readyState == 4
                        {
                            if (
request.status == 200
                                {
                                    
form_nick_request request.responseText;
                                    
form_nick_alert_id.innerHTML form_nick_request;
                                    
form_nick_examination = /o/;
                                    if(
form_nick_examination.test(form_nick_request)){form_nick_id.style.background='#FF0000';}
                                    else{
form_nick_id.style.background='#99CC00';}
                                }
                        } 
                    else 
                        {
                            
form_nick_alert_id.innerHTML "← Validando";
                        }
                } 
  #2 (permalink)  
Antiguo 29/10/2008, 14:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Envio por post

Hola salbatore,

¿Como es que haces el llamado a tu función ajax?

Saludos.
  #3 (permalink)  
Antiguo 30/10/2008, 07:26
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 7 meses
Puntos: 19
Respuesta: Envio por post

Hola,

Se hace mediante un boton en mi formulario... es decir, solo una sola vez, jeje... estoy completamente seguro... por no decir 100%, que el problema esta en:

Código PHP:
 if (request)  
                            { 
                                 
                                
request.onreadystatechange form_nick_ajax_receibe
                                
request.open("POST""xxxx.php"); 
                                
request.setRequestHeader('Content-Type''application/x-www-form-urlencoded;'); 
                                
request.send 
                                    
("nick="+encodeURIComponent(form_nick_id.value)); 
                            } 
Algo erroneo tiene que tener ese fragmento, jeje... lo veis?
  #4 (permalink)  
Antiguo 30/10/2008, 10:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Envio por post

Pues no veo nada extraño, por eso decia como era que hacias el llamado ya que es probable que de ahí venga el error, porque no haces un debug con Firebug? Pon una marca en tu función que se encarga de hacer el envío y haz un trace paso a paso.

Saludos.
  #5 (permalink)  
Antiguo 30/10/2008, 11:22
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 7 meses
Puntos: 19
Respuesta: Envio por post

Hola,

Mira que llevo meses con este error... lo dejaba pasar hasta que lo arreglara, jeje... ayer mismo lo probe con firebug y me dijo que tenia el error.

Pero hoy, y no me pregunto como... funciona perfectamente... es increible...

Creo que nunca sabre que ocurrio... pues si va bien mejor no lo toco...

Aunque aun no he terminado el formulario... vete a saber... jeje...

Como siempre muchas gracias GatorV
  #6 (permalink)  
Antiguo 30/10/2008, 11:52
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 7 meses
Puntos: 19
Envio por post no siempre

Hola, foreros:

Cuando envio elementos mediante post y ajax, las variables las envio de este modo:

Aqui envio nick y password:

Código PHP:
request.send("nick="+encodeURIComponent(form_nick.value)+"&password="+encodeURIComponent(form_password.value)); 
¿Como puedo hacer que si el campo password no existe solo se envie el campo 'nick'?, es que si no existe el campo password la variable no funciona. El problema es que no puedo repetir el codigo anterior dependiendo de si esta o no el password, ya que en el futuro pienso añadir mas campos, jeje.

¿Me podeis ayudar?
  #7 (permalink)  
Antiguo 30/10/2008, 12:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Envio por post

Temas unidos por favor no dupliques temas.

Tienes que crear tu string antes de usar request.send(), y así vas comprobando por ejemplo:
Código javascript:
Ver original
  1. var toSend = "";
  2. if(form_nick) {
  3.        toSend += "nick=" + encodeURIComponent(form_nick.value);
  4. }
  5. if(form_password) {
  6.        toSend += "password=" + encodeURIComponent(form_password.value);
  7. }
  8.  
  9. request.send(toSend);

Saludos.
  #8 (permalink)  
Antiguo 03/11/2008, 11:43
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 7 meses
Puntos: 19
Respuesta: Envio por post

Hola,

Siento haberme duplicado, jeje...

Muchas gracias por tu respuesta!
  #9 (permalink)  
Antiguo 08/01/2009, 12:11
 
Fecha de Ingreso: septiembre-2004
Mensajes: 217
Antigüedad: 20 años, 1 mes
Puntos: 0
Pregunta Respuesta: Envio por post

Hola,
Tengo el mismo problema con firefox no me funciona y con IE si, ya tengo el firebug pero la verdad es que no se como funciona, no se si alguien me pueda decir para poder saber si tengo algun error.
gracias.
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 18:48.