есть функция, нужно сделать return [js]function post(path,postdata) { $.ajax({ type:'POST', urlath, dataostdata, dataType:'json', success: function(data) { return data.answer; } }); }[/js] Но так не работает... как правильно сделать, чтобы работал return? Т.е. внутри $.ajax() return не работает... - предложите альтернативу или выход из ситуации...
у меня есть мега тупое решение =)в success вызывать другую функцию, которая нужна и передавать в нее data =) можно даже сделать нечно вроде фабрики в post передавать еше 1 переменную с названием вызываемой функции =)
очень приятно что вы не понимаете что такое Ajax, там какбы ключевое слово - Asyncronious, а не "заебись, форма не перегружается", ну да ладно. допустим вы все таки не хоитте понимать что это такое, тогда и сделаем через задний проход - пошлем блокируемый запрос и выведем результаты через замыкание async [js]function post(path,postdata) { var _data; $.ajax({ type:'POST', async: false, urlath, dataostdata, dataType:'json', success: function(data) { _data = data.answer; } }); return _data; }[/js]
дану [js]function post(path,postdata,call) { call=call || 'defaultFunc' ; $.ajax({ type:'POST', urlath, dataostdata, dataType:'json', success: function(data) { Caller(data.answer,call); } }); } function Caller(data,call){ return call(data); } function defaultFunc(data){ alert(data); } [/js] не проверял, как то так
Padaboo ну во первых твой код не заработает, но это не важно. во вторых я не про этот говнокод говорил)
решение с async:false работает... да на самом деле я не до конца понимаю тонкости ajax можно в двух словах описать происходящие ? еще я нашел ответ на jquery.com [js]var html = $.ajax({ url: "page.php", async: false }).responseText;[/js]