Вопрос по коду
Коллеги добрый день.
Прошу прощения за нубский вопрос, но уже голову сломал. есть на странице такая функция.
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, время: 11:44. |