elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
26 Mayo 2012, 14:17  


Tema destacado: Últimos eventos sobre seguridad/inseguridad

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Plugin con Jquery retornando respuesta AJAX
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Plugin con Jquery retornando respuesta AJAX  (Leído 1,632 veces)
Littl3

Desconectado Desconectado

Mensajes: 224


Tarde o temprano aparece el hombre


Ver Perfil
Plugin con Jquery retornando respuesta AJAX
« en: 24 Mayo 2011, 19:20 »

Hola,

Llevo dias quebrandome la cabeza con esto;

Código:

//función que comprueba si el usuario existe

jQuery.fn.existe_user=function(){
$.ajax({
type: "POST",
url: "ajax/existe_user.php",
data: "nombre="+$(this).val(),
success: function(existe){return existe;}
});
}

El archivo existe_user.php esta funcionando correctamente, devuelve la id del usuario con el nombre introducido o 0 si este no existe, lo he comprobado con un alert en el success, el problema lo tengo al retornar la respuesta del plugin.

Código:

$("nombre").existe_user();


Siempre devuelve undefined.

He leido que si la conexión asincrona de ajax etc etc, pero se supone que con el success ya se hace el callback, una posible solución seria definir una variable global en el success pero quiero evitar esto.

En definitiva, no se como hacer que existe_user(); devuelva la respuesta de la petición ajax.

Un saludo.


En línea

bomba1990


Desconectado Desconectado

Mensajes: 383



Ver Perfil WWW
Re: Plugin con Jquery retornando respuesta AJAX
« Respuesta #1 en: 24 Mayo 2011, 23:38 »

no lo devuelve porque hace el return dentro de la funcion ajax, para que lo haga como es debido deberias almacenar el valor en una variable y despues devolverlo, creo que haci te debe funcionar.

Código
jQuery.fn.existe_user=function(){	
var user;
$.ajax({
type: "POST",
url: "ajax/existe_user.php",
data: "nombre="+$(this).val(),
success: function(existe){user= existe;}
});
return user;
}
}


En línea

"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve
Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.334

he vuelto :)


Ver Perfil WWW
Re: Plugin con Jquery retornando respuesta AJAX
« Respuesta #2 en: 25 Mayo 2011, 01:31 »

independientemente... supongo que lo que quieres retornar en realidad es "existe" y no la variable existe
En línea

Ojo por ojo, y el mundo acabará ciego.
RedZer


Desconectado Desconectado

Mensajes: 654



Ver Perfil
Re: Plugin con Jquery retornando respuesta AJAX
« Respuesta #3 en: 25 Mayo 2011, 16:11 »

desde mi punto de vista creo que en el archivo existe_user.php es donde deberias de validar si existe o no existe osea aras tu tipica consulta y dependiendo el resultado imprimiras existe ,o no existe..
En línea

Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo
marko1985

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Re: Plugin con Jquery retornando respuesta AJAX
« Respuesta #4 en: 25 Mayo 2011, 16:37 »

Hola,

Yo hace poco me estaba peleando con un problema casi identico, deberíamos de ver dos cosas importantes, una el código PHP que recibe la petición, yo tenía un problema de código en la variable post, pero igualmente estaría bien ver la función que evalua la peticion y por otra parte, la situación en el HTML de estas funciones de jquery. Podríamos ayudarte mucho mejor.

Venga va, ponlo y te ayudamos. Y si la encuentras por tu cuenta, postealo también así los demás no cometeremos el mismo error. Ta luego
En línea
Littl3

Desconectado Desconectado

Mensajes: 224


Tarde o temprano aparece el hombre


Ver Perfil
Re: Plugin con Jquery retornando respuesta AJAX
« Respuesta #5 en: 25 Mayo 2011, 18:28 »

no lo devuelve porque hace el return dentro de la funcion ajax, para que lo haga como es debido deberias almacenar el valor en una variable y despues devolverlo, creo que haci te debe funcionar.


Código
jQuery.fn.existe_user=function(){	
var user;
$.ajax({
type: "POST",
url: "ajax/existe_user.php",
data: "nombre="+$(this).val(),
success: function(existe){user= existe;}
});
return user;
}
}

Gracias bomba, acabo de probarlo pero no funciona, el plugin sigue devolviendo siempre undefined, el archivo php que recibe la petición no tiene misterio, devuelve el numero de usuarios que tienen ese nombre, es decir, 0 o 1.

existe_user.php
Código
<?php
include ("../includes/conexion.php");
 
$usuario = $_POST['nombre'];
$result = mysql_num_rows(mysql_query("select * from usuarios where usuario = '$usuario'")) or die (mysql_error());
echo $result;
 
?>

No me importa si el plugin devuelve "existe" "no existe" 0 o 1, en este caso esta pensado para que devuelva 0 o 1 el caso es que solo devuelve undefined, yo creo que es por lo que dice bomba, el return en callback de la petición ajax no hace el retorno del plugin si no de la propia petición, tiene sentido.

Vuelvo a poner el código de la petición ajax con un alert de prueba,

Plugin de jquery con petición ajax.

Código
 
jQuery.fn.existe_user=function(){
var existe;
 
$.ajax({
type: "POST",
url: "ajax/existe_user.php",
data: "nombre="+$(this).val(),
success: function(data){
alert(data); //TEST ALERT
existe = data;}
});
 
return existe;
}


El test alert me devuelve 0 si el usuario no existe y 1 si el usuario existe, es correcto,  asi que el problema esta en sacar este dato de la petición ajax y utilizarlo como retorno del plugin.

Adjunto también la llamada al plugin que siempre devuelve undefined;

Código
nombre = $("#nombre");
alert(nombre.existe_user());
 

Aunque la respuesta de la petición ajax a existe_user.php sea 0 o 1 la respuesta del plugin siempre es undefined...
« Última modificación: 25 Mayo 2011, 18:31 por Littl3 » En línea

moyo18

Desconectado Desconectado

Mensajes: 54



Ver Perfil WWW
Re: Plugin con Jquery retornando respuesta AJAX
« Respuesta #6 en: 25 Mayo 2011, 19:14 »

q plugin estan usando ? o tu estas haciendo un plugin ?


el codigo para obtener la respues se mira bien, ahora lo q no entiendo muy bien es q es lo q pretendes hacer con esto

Código:
nombre = $("#nombre");
alert(nombre.existe_user());
En línea
Littl3

Desconectado Desconectado

Mensajes: 224


Tarde o temprano aparece el hombre


Ver Perfil
Re: Plugin con Jquery retornando respuesta AJAX
« Respuesta #7 en: 25 Mayo 2011, 20:24 »

El plugin me lo estoy haciendo yo, lo que pretendo sencillamente es pasarle un string con el nombre de usuario al plugin y que me devuelva true o false dependiendo de si el usuario existe o no.
En línea

pipook

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Plugin con Jquery retornando respuesta AJAX
« Respuesta #8 en: 27 Septiembre 2011, 20:29 »

buscando como loco en internet por el mismo error que te pasa o pasaba a ti, no se, vi este post y luego de rebuscar y rebuscar encontre una solucion la verdad no me parece por que no veo que deberia sera asi, pero la unica respuesta que consegui es la siguiente que le agregare a tu codigo, es agregar la opcion async: false, asi fue como me funciono, este post es viejo veo, pero igual como no tiene una solucion pos la pongo por si a alguien le interesa jeje

Código:
jQuery.fn.existe_user=function(){
var existe;
 
$.ajax({
type: "POST",
url: "ajax/existe_user.php",
data: "nombre="+$(this).val(),
                        async: false,
success: function(data){
alert(data); //TEST ALERT
existe = data;}
});
 
return existe;
}
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
iconDock 'dock effect' jQuery plugin
Desarrollo Web
дٳŦ٭ 1 1,215 Último mensaje 20 Agosto 2007, 20:55
por Nakp
Plugin para jQuery
Desarrollo Web
mark182 10 2,931 Último mensaje 22 Enero 2010, 02:41
por Mr. Crowley
Cual es este plugin de jquery?
Desarrollo Web
Gorky 1 801 Último mensaje 1 Febrero 2010, 16:59
por l337*
jquery ajax error handler, no funciona
Desarrollo Web
bomba1990 2 1,248 Último mensaje 15 Agosto 2011, 06:45
por bomba1990
ayuda con la funcion jquery-ajax $.post(). como se implementa ??
Desarrollo Web
jhonatanAsm 4 948 Último mensaje 1 Diciembre 2011, 19:18
por jhonatanAsm
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines