Вопрос по коду
Коллеги добрый день.
Прошу прощения за нубский вопрос, но уже голову сломал. есть на странице такая функция. function getOwnCnt(nomenklatura_n) { $.ajax({ type: "POST", url: "./includes/get_own_cnt.php", data: "nomenklatura_n="+nomenklatura_n, success: function (data) { return data; } }); } var test = getOwnCnt(1061037); alert(test); так вот последняя команда alert выдает undefined... если вместо return data; делаю alert(data); все отображает правильно. Прошу указать мою ошибку... |
надо так
показать чистый исходник в новом окнеСкрыть/показать номера строкпечать кода с сохранением подсветки function getOwnCnt(nomenklatura_n) { var DATA; $.ajax({ type: "POST", url: "./includes/get_own_cnt.php", data: "nomenklatura_n="+nomenklatura_n, success: function (data) { DATA = data; return data; } }); return DATA; } var test = getOwnCnt(1061037); alert(test); |
Dim@, опередил, да-да, всё дело в отсутствии return непосредственно в теле ajax() :D
|
function getOwnCnt(nomenklatura_n) { var DATA; nomenklatura_n = 1061036; $.ajax({ type: "POST", url: "./includes/get_own_cnt.php", data: "nomenklatura_n="+nomenklatura_n, success: function (data) { DATA = data; //alert (data); // здесь все правильно отображает return data; } }); alert (DATA); // здесь также падает undefined return DATA; } |
Цитата:
|
Цитата:
В моем понимании если по ходу функции, уже есть правильный ответ он и дальше должен передаваться. |
Цитата:
смысл заключён в названии технологии рабочий код <script src="http://code.jquery.com/jquery-latest.min.js"></script> <script> (function getOwnCnt(nomenklatura_n) { var DATA; nomenklatura_n = 1061036; $.ajax({ type: "POST", url: "http://lookatcode.com", data: "nomenklatura_n="+nomenklatura_n, success: function (data) { DATA = data; //alert (data); // здесь все правильно отображает return data; } }); setTimeout(function () {alert (DATA)}, 2000); return DATA; })(); </script> |
Спасибо, работает. Насколько я понял просто функция продолжила выполняться, а когда пришел ответ уже все строки были выполнены.
|
Цитата:
возможность запуска [html run] |
мне удобнее получить ответ через return от функции и дальше его обрабатывать, алерт был нужен только для проверки.
Если я перед финальным return делаю while (typeof cnt == "undefined") { } // получаю бесконечный цикл как в такой ситуации выкрутиться ? решение с таймером неудобное. |
Часовой пояс GMT +3, время: 00:06. |