Форум программистов, компьютерный форум, киберфорум
JavaScript: API
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
 Аватар для stikagold
0 / 0 / 0
Регистрация: 11.07.2014
Сообщений: 7

Функция возвращает undefined

11.07.2014, 23:08. Показов 2090. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
ребят помогите, по любому возвращает undefined, хатя значени в самой функции верни, почему? как можно это исправить и вчём причина?
JavaScript
1
2
3
4
5
6
7
8
9
10
11
var lang;
 
function GetURLArgument(arg){
    $.post("url_arguments.php", { com: "GET_ARGUMENT", arg_post: arg})
        .done(function(data) {
            if(arg==="lang")    lang = data;
            return data;
        });
}
 
lang = GetURLArgument("lang")
Добавлено через 7 часов 54 минуты
пробовал и по другому, например так
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
var url_arguments = new Object();
url_arguments.lang = "ru";
 
function GetURLArgument(arg, arg_val){
    $.post("url_arguments.php", { com: "GET_ARGUMENT", arg_post: arg})
        .done(function(data) {
            if(arg==="lang")    arg_val.lang = data;
            return data;
        });
}
 
GetURLArgument("lang", url_argument);
все равно значении меняется только локально
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.07.2014, 23:08
Ответы с готовыми решениями:

Функция возвращает undefined
Привет! я недавно начал учить JS по этому учебнику. В процессе решения задачек оттуда столкнулся с такой проблемой: есть структура под...

Функция возвращает undefined
Написал вот такую штуку. var lang = 'lv'; var locale = { en : { paty_not_work : '1'

Функция все время возвращает undefined
Приветствую. Подскажите пожалуйста в чем может быть ошибка. Есть json файл, содержащий данные. Есть функция обращения к этому...

7
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
 Аватар для Tatikoma
260 / 224 / 109
Регистрация: 07.07.2014
Сообщений: 965
11.07.2014, 23:49
stikagold, потому что вам нужно передавать колбек, который будет вызван.

JavaScript
1
2
3
4
5
6
7
8
9
10
var lang;
 
function GetURLArgument(callback, arg){
    $.post("url_arguments.php", { com: "GET_ARGUMENT", arg_post: arg})
        .done(callback);
}
 
lang = GetURLArgument(function(data){
    alert(data);
});
0
 Аватар для stikagold
0 / 0 / 0
Регистрация: 11.07.2014
Сообщений: 7
12.07.2014, 00:09  [ТС]
проясните пожалуйста, а то как то не получается, куда делся мой аргумент lang, который вобщем то очень важен , до и firebug у меня ошибку видаёт , мои вопрос так не решается, мне только надо присвоить ответ сервера к глобальной переменной

Добавлено через 43 секунды
Цитата Сообщение от Tatikoma Посмотреть сообщение
stikagold, потому что вам нужно передавать колбек, который будет вызван.

JavaScript
1
2
3
4
5
6
7
8
9
10
var lang;
 
function GetURLArgument(callback, arg){
    $.post("url_arguments.php", { com: "GET_ARGUMENT", arg_post: arg})
        .done(callback);
}
 
lang = GetURLArgument(function(data){
    alert(data);
});
проясните пожалуйста, а то как то не получается, куда делся мой аргумент lang, который вобщем то очень важен , до и firebug у меня ошибку видаёт , мои вопрос так не решается, мне только надо присвоить ответ сервера к глобальной переменной
0
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
 Аватар для Tatikoma
260 / 224 / 109
Регистрация: 07.07.2014
Сообщений: 965
12.07.2014, 00:12
JavaScript
1
2
3
4
5
6
7
8
9
10
var lang;
 
function GetURLArgument(callback, arg){
    $.post("url_arguments.php", { com: "GET_ARGUMENT", arg_post: arg})
        .done(callback);
}
 
GetURLArgument(function(data){
    lang = data;
});
0
 Аватар для stikagold
0 / 0 / 0
Регистрация: 11.07.2014
Сообщений: 7
12.07.2014, 00:40  [ТС]
нет, не получается, по прежнему один и тот же результат, тоесть переменний не меняет своё значение, хоть и в самой функции результат правильный, сейчас попробую завернуть всё в объект, но так думаю, что ничего от этого не изменется, что можно сделать ?

Добавлено через 16 секунд
Цитата Сообщение от Tatikoma Посмотреть сообщение
JavaScript
1
2
3
4
5
6
7
8
9
10
var lang;
 
function GetURLArgument(callback, arg){
    $.post("url_arguments.php", { com: "GET_ARGUMENT", arg_post: arg})
        .done(callback);
}
 
GetURLArgument(function(data){
    lang = data;
});
нет, не получается, по прежнему один и тот же результат, тоесть переменний не меняет своё значение, хоть и в самой функции результат правильный, сейчас попробую завернуть всё в объект, но так думаю, что ничего от этого не изменется, что можно сделать ?

Добавлено через 5 минут
нет, не вышло
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
 var lang = new Object();
 lang.language = "rus";
 
console.log("Before calling function: "+lang.language);
function GetURLArgument(callback, arg){
      $.post("url_arguments.php", { com: "GET_ARGUMENT", arg_post: arg})
            .done(callback);
}
 
GetURLArgument(function(data){
      lang.language = data;
}, "lang");
console.log("After calling function: "+lang.language);
в теории все правильно, на практике ничего и не меняется
0
268 / 268 / 109
Регистрация: 22.08.2013
Сообщений: 907
12.07.2014, 12:59
Лучший ответ Сообщение было отмечено stikagold как решение

Решение

stikagold, return возвращает значение туда, где была вызвана функция, но т.к. эта функция обратного вызова, то и вызывается она не там же, где была создана. В данном случае, return из callback-функции возвращает значение куда-то в недры jQuery, откуда был сделан её вызов.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function GetURLArgument(arg) {
    var result = null;
 
    $.ajax({
        url: 'url_arguments.php',
        type: 'POST',
        data: {com: 'GET_ARGUMENT', arg_post: arg},
        async: false,
        success: function(data) {
            //Замыкание «помнит» о своем родителе
            result = data;
        }
    });
 
    return result;
}
Рабочий вариант с синхронным запросом. Синхронный запрос останавливает выполнение кода пока не придет ответ от сервера. Крайне рекомендую использовать эту функцию лишь в обработчиках событий, т.к. в глобальной области видимости, остановка может привести к проблемам с выполнением кода.
1
 Аватар для stikagold
0 / 0 / 0
Регистрация: 11.07.2014
Сообщений: 7
12.07.2014, 16:32  [ТС]
Цитата Сообщение от Razip Посмотреть сообщение
stikagold, return возвращает значение туда, где была вызвана функция, но т.к. эта функция обратного вызова, то и вызывается она не там же, где была создана. В данном случае, return из callback-функции возвращает значение куда-то в недры jQuery, откуда был сделан её вызов.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function GetURLArgument(arg) {
    var result = null;
 
    $.ajax({
        url: 'url_arguments.php',
        type: 'POST',
        data: {com: 'GET_ARGUMENT', arg_post: arg},
        async: false,
        success: function(data) {
            //Замыкание «помнит» о своем родителе
            result = data;
        }
    });
 
    return result;
}
Рабочий вариант с синхронным запросом. Синхронный запрос останавливает выполнение кода пока не придет ответ от сервера. Крайне рекомендую использовать эту функцию лишь в обработчиках событий, т.к. в глобальной области видимости, остановка может привести к проблемам с выполнением кода.
огромное спасибо, всьо верно, получилась, я тоже нашёл этот метод, спасибо за помощ
0
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
 Аватар для Tatikoma
260 / 224 / 109
Регистрация: 07.07.2014
Сообщений: 965
12.07.2014, 23:44
Не используйте синхронные запросы - это подвешивает браузер. Разберитесь с тем, как сделать это асинхронно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.07.2014, 23:44
Помогаю со студенческими работами здесь

Почему return xmlhttp.responseText возвращает undefined?
Всем доброго дня!) if (xmlhttp.readyState == 4) { if(xmlhttp.status == 200) { ...

Функция возращает значение undefined
Здраствуйте форумчане! У меня возникла следующая проблема: я описал функцию checkNickName которая предназначена для проверки пользователей...

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

Функция возвращает undefined
Всем привет! В качестве наркомании пишу следующее: function userFadeout(el, delay) { if(el.style.opacity == "") { ...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru