![](/s/images/no_avatar_128.jpg)
0
Отвечен
скажите почему не работает это код
$.ajax({ url: 'https://dadata.ru/api/v2/suggest/address',
type: 'POST',
dataType: 'json',
headers: {
"Authorization": "Token 08b2a2bb9eb5319303b434c6eff03ee6ec3c7f80",
"Content-Type": "application/json; charset=UTF-8",
"Accept": "application/json"
},
data: JSON.stringify({"query": $('#city').text()}),
success: function (response) {
var obj = jQuery.parseJSON(response);
alert(obj.suggestions.data.region_with_type);
}
});
type: 'POST',
dataType: 'json',
headers: {
"Authorization": "Token 08b2a2bb9eb5319303b434c6eff03ee6ec3c7f80",
"Content-Type": "application/json; charset=UTF-8",
"Accept": "application/json"
},
data: JSON.stringify({"query": $('#city').text()}),
success: function (response) {
var obj = jQuery.parseJSON(response);
alert(obj.suggestions.data.region_with_type);
}
});
Ответ
![](/s/cache/3a/75/3a75636b9ad9c228349f3fdaca2eff38.png)
0
Ответ
Отвечен
Антон Жиянов 9 лет назад
response в обработчике success — это объект, а не текст. Поэтому parseJSON не отрабатывает. Вот пример работы с подсказками через аджакс: Получаем список подсказок через AJAX-запрос
![](/s/cache/3a/75/3a75636b9ad9c228349f3fdaca2eff38.png)
Ответ
Отвечен
response в обработчике success — это объект, а не текст. Поэтому parseJSON не отрабатывает. Вот пример работы с подсказками через аджакс: Получаем список подсказок через AJAX-запрос
![](/s/images/no_avatar_128.jpg)
да но вот это:
$.ajax({ url: 'https://dadata.ru/api/v2/suggest/address',
type: 'POST',
dataType: 'json',
headers: {
"Authorization": "Token 08b2a2bb9eb5319303b434c6eff03ee6ec3c7f80",
"Content-Type": "application/json; charset=UTF-8",
"Accept": "application/json"
},
data: JSON.stringify({"query": $('#city').text()}),
success: function (response) {
alert(response.suggestions.data.region_with_type);
},
});
выдает вот что:
Cannot read property 'region_with_type' of undefined
я понимаю что как-то неправильно пытаюсь выбрать регион из ответа, но пока не смог разобраться как это сделать, тем более там много ответов (много объектов подходящих под параметры) а как выбрать именно регион конкретного города тоже непонятно
$.ajax({ url: 'https://dadata.ru/api/v2/suggest/address',
type: 'POST',
dataType: 'json',
headers: {
"Authorization": "Token 08b2a2bb9eb5319303b434c6eff03ee6ec3c7f80",
"Content-Type": "application/json; charset=UTF-8",
"Accept": "application/json"
},
data: JSON.stringify({"query": $('#city').text()}),
success: function (response) {
alert(response.suggestions.data.region_with_type);
},
});
выдает вот что:
Cannot read property 'region_with_type' of undefined
я понимаю что как-то неправильно пытаюсь выбрать регион из ответа, но пока не смог разобраться как это сделать, тем более там много ответов (много объектов подходящих под параметры) а как выбрать именно регион конкретного города тоже непонятно
![](/s/cache/3a/75/3a75636b9ad9c228349f3fdaca2eff38.png)
response.suggestions — это массив. Можно брать его первый элемент:
var region = response.suggestions.length && response.suggestions[0].data.region_with_type || ""; console.log(region);Только не всегда по названию города можно однозначно определить регион. Какой у вас сценирий использования, зачем нужны эти данные?
![](/s/images/no_avatar_128.jpg)
мне нужно по введенному городу определить край или область для последующего поиска по городам региона
![](/s/images/no_avatar_128.jpg)
может конечно правильно искать по диаметру например от координаты города, но это совсем не знаю как делать
![](/s/cache/3a/75/3a75636b9ad9c228349f3fdaca2eff38.png)
Почему бы не дать возможность пользователю самому выбрать город? Область при этом вы получите автоматически: выбрать город с помощью подсказок.
![](/s/images/no_avatar_128.jpg)
дело в том что используется форма на плагине http://vitalets.github.io/x-editable/ (часть шаблона) и там нет поля для ввода значений input вернее есть но его добавляет сам плагин
![](/s/cache/3a/75/3a75636b9ad9c228349f3fdaca2eff38.png)
Раз поле есть, значит на него можно навесить подсказки. Просто инициализируйте их после того, как плагин добавил поле на страницу (я так понимаю, это событие shown в плагине).
Сервис поддержки клиентов работает на платформе UserEcho