Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
 Аватар для svkpro
8 / 8 / 0
Регистрация: 07.12.2012
Сообщений: 143

Функция возвращает пустое значение

04.11.2014, 21:08. Показов 2474. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Подскажите, пожалуйста, почему эта функция возвращает пустое значение
JavaScript
1
2
3
4
5
6
7
8
9
10
function getDataLanguage(language){
    var translate_data = {};
    $.post('get_translate_data.php',{'language':language},function(result){
        var data = $.parseJSON(result);
        $.each(data, function(key, value){
            translate_data[key] = value;
        });     
    });
    return translate_data;
}
данные в data есть
спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.11.2014, 21:08
Ответы с готовыми решениями:

Ajax. Возвращает пустое значения из <input type="text">
Доброго времени суток. Задание простое - взять значение из 2-х &lt;input type=&quot;text&quot;&gt; и передать на сервер. Вроде не сложно, но значения...

Пустое значение оптион
Имеется скрипт http://razmenyai.ru/wp-content/themes/classipress-v3.5.1/includes/js/search-nedv.js?ver=4.3.3 и ...

Как выбрать пустое значение в dropdown?
у меня есть - как через код выбрать первое значение - где value пустое &lt; select id = &quot; combo &quot; &gt; &lt; optiоn value &gt; &lt;...

11
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
04.11.2014, 21:15
svkpro, запрос выполняется асинхронно. Поэтому функция возвращает "translate_data" до того, как запрос завершится.

Не по теме:

Начинаю привыкать, что раз в два дня отвечаю на такой вопрос ))

0
 Аватар для svkpro
8 / 8 / 0
Регистрация: 07.12.2012
Сообщений: 143
04.11.2014, 21:17  [ТС]
а как сделать что бы функция вернула массив?
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
04.11.2014, 21:25
svkpro, Парсить ответ не нужно. Указав тип ожидаемого ответа как "json", вы сразу получаете готовый к использованию объект
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function makeRequest(language){
    return new Promise(function(resolve, reject) {
        var translate_data = {};
        $.ajax({
            url: 'get_translate_data.php',
            type: 'POST',
            dataType: 'json',
            data: {language:language},
            error: reject,
            success: function(data){
                $.each(data, function(key, value){
                    translate_data[key] = value;
                });
                return resolve(translate_data);
            }
        });
    });
}
 
makeRequest('china').then(function(response) {
    // всё гуд, получили данные response, продолжаем с ними работать    
}, function(error) {
    // Хьюстон! У нас проблемы!
    alert('Failed!: ' + error.statusText);
});
0
 Аватар для svkpro
8 / 8 / 0
Регистрация: 07.12.2012
Сообщений: 143
04.11.2014, 21:25  [ТС]
так
JavaScript
1
2
3
4
5
6
7
8
9
10
function getDataLanguage(language){
    var translate_data = {};
    $.post('get_translate_data.php',{'language':language},function(result){
        var data = $.parseJSON(result);
        $.each(data, function(key, value){
            translate_data[key] = value;
        }); 
        console.log(translate_data);        
    }); 
}
в консоль пишет
JavaScript
1
2
3
4
5
6
7
8
9
10
function getDataLanguage(language){
    var translate_data = {};
    $.post('get_translate_data.php',{'language':language},function(result){
        var data = $.parseJSON(result);
        $.each(data, function(key, value){
            translate_data[key] = value;
        }); 
        return translate_data;      
    }); 
}
а с return взвращает пустой объект
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
04.11.2014, 21:27
P.S. Кстати, а зачем вам перебирать объект/массив? Только сейчас заметил. Это же переливание из пустого в порожнее.
0
 Аватар для svkpro
8 / 8 / 0
Регистрация: 07.12.2012
Сообщений: 143
04.11.2014, 21:32  [ТС]
я пытался сразу делать ретурн - ничего не вышло ( решил распарсить
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
04.11.2014, 21:34
Лучший ответ Сообщение было отмечено svkpro как решение

Решение

svkpro, в общем мой пример выше, который вы из-за спешки может и не увидели, можно записать короче:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function makeRequest(language){
    return new Promise(function(resolve, reject) {
        $.ajax({
            url: 'get_translate_data.php',
            type: 'POST',
            dataType: 'json',
            data: {language:language},
            error: reject,
            success: resolve
        });
    });
}
 
makeRequest('china').then(function(response) {
    // всё гуд, получили данные response, продолжаем с ними работать    
    // response - это уже объект
}, function(error) {
    // Хьюстон! У нас проблемы!
    alert('Failed!: ' + error.statusText);
});
0
 Аватар для svkpro
8 / 8 / 0
Регистрация: 07.12.2012
Сообщений: 143
04.11.2014, 21:39  [ТС]
я попробовал Ваш пример
вернуло Failed!OK - это как понимать?
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
04.11.2014, 22:01
Лучший ответ Сообщение было отмечено svkpro как решение

Решение

Цитата Сообщение от svkpro Посмотреть сообщение
вернуло Failed!OK
Это что-то новое )) Можете показать код после изменения?

Добавлено через 12 минут
svkpro, в общем, скорее всего, что запрос проходит, но обработчик возвращает пустой результат. Посмотрите в консоли. Убедитесь, что данные отправляются и гляньте, что приходит в ответе.
1
 Аватар для svkpro
8 / 8 / 0
Регистрация: 07.12.2012
Сообщений: 143
04.11.2014, 22:10  [ТС]
инет лажает не могу за ответы спасибо буду дальше сам разбираться
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
04.11.2014, 22:12
svkpro, На всякий случай, вот вам рабочий пример. Не обращайте внимание на то, как там формируются данные для отправки и url. Это только для работы кода в песочнице.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.11.2014, 22:12
Помогаю со студенческими работами здесь

Валидация формы поиска на пустое значение
Добрый день! Имеется следующая форма и код на валидацию по пустому введенному значению. Немного не выходит. Кнопка submit при любом...

Как проверить json ответ на пустое значение?
Функция получает json данные из скрипта. Скрипт читает данные из базы. Когда база пуста, возвращается пустой json - и больше ничего....

Удалить строчку таблицы где есть пустое значение
Добрый день. не могу придумать, как сделать следующее &lt;input type=&quot;checkbox&quot; onclick=&quot;del()&quot;/&gt; &lt;table&gt; &lt;tr&gt; ...

Функция возвращает неверное значение
Даже не знаю как вопрос правильно назвать. Вот вкратце такие конструкции. При загрузке документа получаю с = 3 . То есть срабатывает только...

Функция возвращает значение раньше, чем отработают внутренние циклы.
Здравствуйте! Подскажите кто разбирается в поточности JavaScript. Столкнулся с вещью, которую не могу объяснить. Есть такая ф-ция,...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru