Tngo un codigo html/javascript/php que con ajax se conecta a la DB a lo largo de la ejecution de la pagina mediante unas sencillas funciones.
El caso es que la funcion ajax me devuelve true o false, teoricamente. ahora bien si saco el valor devuelto mediante un alert, todo funciona bien, pero si comento el alert... kaput! lo cual me parece q tiene muy poco sentido xq el dichoso alert no tiene ningun efecto lateral no?
he provado a sustituir el alert por un eval de la variable, o asignar el valor de la variable a otra (por hacer algo, vamos el tipico recurso cuando no tienes nidea).
El programa en cuestion es una pagina para crear un equipo de baloncesto de 10 jugadores. Existe una lista almacenada en una db con los jugadores disponibles, pero como puede haber varios usuarios a la vez creando su equipo, es necesario verificar que el jugador que se quiere fichar no haya sido cogido por otro jugador.
Os pongo el trozo de codigo:
Código Javascript:
Ver original
var data = []; /*Esta funcion se llama para saber si el jugador se puede fichar o no. Cada jugador tiene un campo que se asigna al usuario, si este campo esta vacio, entonces la funcion devuelve true, sino false. El caso es que hasta aqui todo bien pues cuando se ejecuta el codigo php en dbUpdate.php el valor a devolver es correcto (true o false). */ function ajaxUpdateAdd(key, user) { var options = { onSuccess: function(t) { data= eval(t.responseText); } } new Ajax.Request('dbUpdate.php?p_key='+key+'&usr='+user+'', options); alert(data); // Este el alert del q hablo, la primera vez que se ejecuta la funcion devuelve [Object object] return data; } //....... unas lineas mas adelante: rep = ajaxUpdateAdd(playersArray[n].getKey(), user_name ); alert("Reply: "+eval(rep)); //Si dejo el primer alert, me devuelve el valor correcto, pero sino me devuelve [Object object]
Cuando esta sin comentar el alert me devuelve [Object object] y el siguiente alert true o false.
Al quitar el alert, es el segundo alert el que me devuelve [Object object] y la variable toma valor false siempre (aunque la func devuelva true) , es como si al hacer el alert primero estuviese indefinida la variable pero al hacer el alert queda definida o algo asi.
A ver si con esta info adicional me podeis decir algo. No pego el codigo entero poque son como 400 lineas.
Muchas gracias