Foros del Web » Programando para Internet » PHP »

problema con php y ajax (xajax)

Estas en el tema de problema con php y ajax (xajax) en el foro de PHP en Foros del Web. Hola amig@s. Tengo un problemilla a la hora de hace una inserción en la base de datos y luego mostrarla. Las 2 funciones en php ...
  #1 (permalink)  
Antiguo 05/02/2012, 05:10
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
problema con php y ajax (xajax)

Hola amig@s.
Tengo un problemilla a la hora de hace una inserción en la base de datos y luego mostrarla. Las 2 funciones en php llamadas por ajax.

Cuando pulso una imagen primero llamo a la función de insertar y acto seguido a la función de mostrar. De tal forma que queda así
Código PHP:
><img src='images/add.png' id='aniadir' style='cursor:pointer' onclick='xajax_insertaDatos(xajax.getFormValues(formulario));  xajax_imprimeDatos(document.formulario.usuario.value)' /> 
Inserta bien los datos, pero a la hora de mostrarlos normalmente no muestra nada hasta la segunda vez que inserto.
Es como si se ejecutase la función de imprimir cuando todavía no ha dado tiempo a que se inserte el registro.

He probado ponerle a la función de imprimir, al principio de la misma, un sleep() de 5, 10 y 20. Y nada, a veces bien pero normalmente mal.

Sabeis por qué me está pasando ésto? Podeis darme alguna solución?
Muchas gracias.
  #2 (permalink)  
Antiguo 05/02/2012, 07:40
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: problema con php y ajax (xajax)

es obvio, porque las funciones tal como tu las tienes no se ejecutan en secuencia, al contrario se ejecutan al mismo tiempo, por lo cual cuando ejecutas la de lectura se esta ejecutando al mismo tiempo que la de inserción, en todo caso, deberías llamar a la función de lectura desde la de inserción verificando primero que esta ah terminado de realizar lo que tenga que hacer, o mejor aun, el PHP que hace la inserción retornar los valores esperados o de perdida, hacer una reedirección hacia el script que retorna dichos datos...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 05/02/2012, 10:11
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: problema con php y ajax (xajax)

Eso que me cuentas es complicado.
Desde la de inserción debería hacer algo así como
Código PHP:
$respuesta->script("imprimeDatos($usuario)"); 
Lo malo es que lo he intentado taantas veces y no va...

La cosa es que si pongo algo en el div de respuesta cuando todavía no se ha pulsado el botón, cuando lo pulsas suele mostrar la inserción a la primera. Pero no lo hace siempre.

Y sí, intenté fusionar las 2 funciones en una sola y da el mismo resultado, nada.

Creo que si funcionase lo del sleep() sería lo ideal.
No conoces nada similar para aplicarle?

Gracias por tu respuesta!!

Etiquetas: ajax, formulario, registro, usuarios
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 21:46.