2010-12-10 4 views
0

Я хотел бы иметь функцию, которая возвращает repsonseText вызова jQuery.ajax(). Все примеры, которые я видел, говорят, чтобы использовать функцию «success» для обработки возвращаемых данных. Тем не менее, для моей реализации мне нужно что-то вроде следующего:Нужно получить ответText из jQuery.ajax, возвращенный вместо использования функции 'success'

function getRemoteValue(id) { 
    var request = jQuery.ajax({ 
    url:'somefile.php', 
    dataType:'text' 
    }); 
    return request.responseText; 
} 

Когда я делаю вызов этой функции, Firebug показывает запрос как идти до конца с правильным ответом возвращается. Однако, когда я пытаюсь следующее, я получаю только пустую строку:

var some_value = getRemoteValue(1); // The problem is here. some_value is empty. 
jQuery('.someclass').html(some_value); 
// Other processing using some_value; 

Опять же, для моей реализации я не могу делать то JQuery HTML (some_value); (»SomeClass.). в вызове ajax(). Как я могу вернуть ответ responseText? Спасибо!

+0

Я бы это проверить http://stackoverflow.com/questions/3732258/why-can-i-not-return-responsetext-from-an-ajax-function –

+0

Спасибо за ссылку. Вся «асинхронная» сначала не тонула :) – robertwbradford

ответ

1

Робер,

Следующий код является действительным, но возвращает нуль

var some_value = getRemoteValue(1); 

Аякса вызов асинхронный вызов, это просто инициализирует процесс идет, так что вы всегда будете иметь эту проблему

Вам нужно перенести свой код в обработчик успеха ajax для выполнения любых операций с почтой.