Foros del Web » Programando para Internet » Jquery »

Problemas con return en funciones anidadas Jquery $.ajax

Estas en el tema de Problemas con return en funciones anidadas Jquery $.ajax en el foro de Jquery en Foros del Web. Antes que nada gracias por la atención: el problema es el siguiente, estoy tratando de estructurar el manejo de tablas mysql con jquery usando para ...
  #1 (permalink)  
Antiguo 08/11/2011, 11:12
 
Fecha de Ingreso: marzo-2008
Mensajes: 10
Antigüedad: 16 años, 1 mes
Puntos: 1
Pregunta Problemas con return en funciones anidadas Jquery $.ajax

Antes que nada gracias por la atención:

el problema es el siguiente, estoy tratando de estructurar el manejo de tablas mysql con jquery usando para ello $.ajax. para eso tengo los siguentes archivos

ejecutar.js
Código PHP:
function ejecutar (sqltipo){
var 
resultado;    
$.
ajaxSetup({ 'beforeSend': function(xhr) {xhr.setRequestHeader("Accept""text/javascript,application/javascript,text/html")} });
$.
ajax({type"POST"url"ejecutar.php?sql="+sql+"&tipo="+tipodataType"json",
       
success:  function(data){
           
resultado data;
       }
});

return 
resultado;

y ejecutar.php
Código PHP:
require_once("conexion.php");
$c = new conexion();
$tipo $_GET["tipo"];
if (
get_magic_quotes_gpc()){ $sql stripcslashes($_GET["sql"]); }else{    $sql $_GET["sql"]; }

if (
$tipo=="devolver_fila"){
$rs $c->devolver($sql);
    while (
$f mysql_fetch_array($rs)){
        for (
$x 0$x<mysql_num_fields($rs); $x++){
            
$nombre mysql_field_name($rs,$x);
            
$arr[$nombre]= $f[$x];    
        }                
    }
//    $arr ["sql"]= $tipo;
    
echo(json_encode($arr)); 


el archivo ejecutar.php devuelve el resultado de una consulta mysql_Query en formato json, el mismo que se transfiere al ejecutar.js a traves de la variable data en el evento success, hasta ahi todo funciona bien, el problema es que quiero que el resultado de data regrese en forma de return de la funcion ejecutar (que esta dentro del archivo ejecutar.js) para poder usarlo desde cualquier otra pagina.

por ejemplo si etoy haciendo un login podria poner esto en mi pagina login.php

<script language="javascript" src="librerias/ejecutar.js"></script>
$(document).ready(function(){
$("#send").click(function(){
var user = $("#usuario").val();
var clave = $("#clave").val();

var resultado = ejecutar("select count(*) as cantidad from usuaios where user="+user+" and clave="+clave, "devolver_fila");

if (resultado.cantidad==0){
alert ("usuario o clave incorrectos");
}else{
alert ("redireccionando...");
/* aca el resto del codigo*/
}
});
});

me dejo entender?... o sea mi problema es basicamente como hago para pasar el contenido de la variable DATA que regresa en success del $.ajax al return de la funcion ejecutar.

si alguien me ayuda le estaria muyyyyy agradecido... eh probado en ponerle return en el mismo success pero eso regresa el valor a la funcion success no a la funcion ejecutar. salu2 y gracias de antemano
  #2 (permalink)  
Antiguo 09/11/2011, 10:07
Avatar de livemusic  
Fecha de Ingreso: abril-2011
Ubicación: Lima - Chorrillos
Mensajes: 150
Antigüedad: 13 años
Puntos: 18
Respuesta: Problemas con return en funciones anidadas Jquery $.ajax

A simple vista::.

1.- Mandas valores de Js a Php con el metodo POST y en php intentas obtenerlos con GET....

2. function ejecutar (sql, tipo)

-------------> Envia como cadena tu consulta.
var resultado = ejecutar("select count(*) as cantidad from usuaios where user='"+ user +"' and clave='"+ clave +"'", "devolver_fila");

Me comentas si te funciono.... suerte ...............
  #3 (permalink)  
Antiguo 12/11/2011, 16:06
 
Fecha de Ingreso: marzo-2008
Mensajes: 10
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Problemas con return en funciones anidadas Jquery $.ajax

gracias por tu interés te comento que ya lo solucioné, lo que pasa es k la llamada ajax tiene cierto tiempo de delay porque tiene k hace la llamada al server, por otra parte la funcion como tal se general de corrido por lo que cuando la funcion pide que le devuelvan un resultado devuelve vacio (undefined), la solución fue agregar el argumento async:false en la llamada ajax, de esa forma el javascript se detiene hasta que haya una respuesta, y la respuesta ya pasa a la variable que se regresa como return.

salu2

Etiquetas: anidadas, funciones, jquery-ajax, problemas-function, return-path
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 23:54.