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

Problema una vez enviado un formulario con AJAX

Estas en el tema de Problema una vez enviado un formulario con AJAX en el foro de Frameworks JS en Foros del Web. Hola a todos, intentare explicarme para que me entendais correctamente... Tengon un formulario con varios campos y selects independientes, que se envia por ajax a ...
  #1 (permalink)  
Antiguo 22/09/2008, 15:09
 
Fecha de Ingreso: septiembre-2008
Mensajes: 65
Antigüedad: 15 años, 7 meses
Puntos: 2
Pregunta Problema una vez enviado un formulario con AJAX

Hola a todos, intentare explicarme para que me entendais correctamente...

Tengon un formulario con varios campos y selects independientes, que se envia por ajax a la base de datos para su actualizacion.
Todo va a las mil maravillas pero una vez enviado por post la promera vez el formulario a la base de datos, que tembien se realiza con exito , si intento volver a cambiar el valor de uno de los selects (cualquiera de ellos) y vulevo a hacer submit el valor de ese select llega a la base de datos con el valor del primer envio.

Por mas que he estado mirando no encuentro el porque, ya que si modifico cualquier campo input si me transmite el dato modificado....

¿puede deberse a que el explorador guarda los datos de post hasta que se refresca la pagina ???? si es asi como puedo resetear esa llamemosla cache de post del explorador para que envie el nuevo valor de los selec siempre???

He de decir tambien que haciendo alerts usando onchange, javascript me devuelve el dato correcto pero se sigue enviando el anterior.....

Gracias de antemano.
  #2 (permalink)  
Antiguo 22/09/2008, 15:12
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: Problema una vez enviado un formulario con AJAX

Muestra el codigo JS con el que haces el envio.
__________________
My path is lit by my own fire, I only go where I desire
  #3 (permalink)  
Antiguo 22/09/2008, 15:14
 
Fecha de Ingreso: septiembre-2008
Mensajes: 65
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Problema una vez enviado un formulario con AJAX

Con esta primera funcion recupero los datos para enviarlos por POST
function getRecuestFields(oForm)
{
var aParams = new Array();

for (var i=0 ; i < oForm.elements.length; i++)
{
var sParam = encodeURIComponent(oForm.elements[i].name);
sParam += "=";
sParam += encodeURIComponent(oForm.elements[i].value);
aParams.push(sParam);
}

return aParams.join("&");
aParams = '';
}


Con esta segunda mando los datos a la pagina php que hace el update en la base de datos.

function update_datos(elForm)
{
var oForm = elForm;

var sBody = getRecuestFields(oForm);

var oXmlHttp = zXmlHttp.createRequest();
var accion = oForm.action;
accion = accion + '&nocache=' + Math.random();

oXmlHttp.open("post", accion, true);
oXmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

oXmlHttp.onreadystatechange = function()
{
if(oXmlHttp.readyState == 4)
{
if(oXmlHttp.status == 200)
{
var arr_respuesta = oXmlHttp.responseText.split("||");

if(!eval(arr_respuesta[0]))
{
MuestraInformacion(arr_respuesta[1]);
}
else
{
return false;
}
}
else
{
MuestraInformacion("A ocurrido un error al intentar Actualizar los datos: " + oXmlHttp.statusText);
}
}
};
oXmlHttp.send(sBody);
}
  #4 (permalink)  
Antiguo 22/09/2008, 15:24
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: Problema una vez enviado un formulario con AJAX

lo unico fuera de lugar que veo es esto

accion = accion + '&nocache=' + Math.random();

cuando deberias hacer:

sBody+= '&nocache=' + Math.random();

Ahora una pregunta, la llamada a esta funcion la haces con un type='submit' o type='button'???
__________________
My path is lit by my own fire, I only go where I desire
  #5 (permalink)  
Antiguo 22/09/2008, 15:37
 
Fecha de Ingreso: septiembre-2008
Mensajes: 65
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Problema una vez enviado un formulario con AJAX

Antes de nada gracias por las respuestas tan rapidas.

Utilizo un button para el envio que llama a la funcion ajax.

El tema de usar la variable accion es porque en la misma pagina tengo varios
formularios para actualizar varias tablas distintas y asi puedo mandar el formulario
que necesite de forma dinamica.

Lo que sigo sin entender es porque de todos los campos del formulario los unicos que no refrescan el valor al enviar sean los combos....

Gracias de nuevo.
  #6 (permalink)  
Antiguo 22/09/2008, 16:25
 
Fecha de Ingreso: septiembre-2008
Mensajes: 65
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Problema una vez enviado un formulario con AJAX

Ya esta solucionado....

la culpa fue mia al pasar mal el parametro a una funcion que tengo que me devuelbe dinamicamente los selects con el valor almacenado en la base de datos en primer lugar... lo que pasaba es que uno de los parametros que le decia a la funcion que valor debia aparecer selected="selected" lo pasaba mal por lo que lista mostraba en primer lugar siempre el prime registro de la tabla en cuestion...

Pa tirarse por la ventana.....

Perdonar por la falsa alarma y a la vez gracias por la atencion prestada.

Un saludo, voy a tirarme por la ventana......
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 09:24.