2015-02-11 2 views
0

Я пытаюсь использовать плагин проверки jQuery для проверки доступных имен. Он отправляет запрос в php-файл и получает ответ 0 или 1.Как передать результат jquery post другой функции

Проблема в том, что я не могу передать результат основной функции. смотрите мой код ниже

jQuery.validator.addMethod("avaible", function(value, element) { 

    $.post("/validate.php", { 
     friendly_url: value, 
     element:element.id 
    }, function(result) { 
     console.log(result) 
    }); 

    //How to pass result here??? 
    console.log(result) 
}, ""); 
+1

'myOtherFunction (result)' – adeneo

+2

Добро пожаловать в мир асинхронного javascript. –

+0

Вы уже делаете это с помощью 'console.log (result)' as 'console.log()' является функцией. (I.e. к другой функции, но вы не можете вернуться к функции, которая вызвала сообщение для начала) – developerwjk

ответ

0

Так как люди уже сказал, это асинхронный и это myOtherFuntion :-)

Я просто объединить эти комментарии в какой-то ответ для вас:

function myOtherFunction(result) { 
// here you wrote whatever you want to do with the response result 
//even if you want to alert or console.log 
    alert(result); 
    console.log(result); 
} 

jQuery.validator.addMethod("avaible", function(value, element) { 

    $.post("/validate.php", { 
     friendly_url: value, 
     element:element.id 
    }, function(result) { 
     myOtherFunction(result); 
    }); 

    //How to pass result here??? 

    //there is no way to get result here 
    //when you are here result does not exist yet 
}, ""); 
0

Из-за асинхронного характера Javascript console.log(result) не будет работать, потому что сервер еще не вернулся с данными результата.

jQuery.validator.addMethod("avaible", function(value, element) { 

$.post("/validate.php", { 
    friendly_url: value, 
    element:element.id 
}, function(result) { 
    console.log(result); 
    doSomethingWithResult(result); 
}); 

function doSomethingWithResult(result) { 
    //do some stuff with the result here 
} 
}, ""); 

выше позволит передать результат другой функции, которая позволит вам добиться доступа и работы с результатом, когда он вернулся с сервера.

Смежные вопросы