Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/40: Рейтинг темы: голосов - 40, средняя оценка - 4.90
33 / 4 / 1
Регистрация: 29.05.2014
Сообщений: 144

Ajax вывод значений json

21.12.2015, 17:08. Показов 7444. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При выборе радикнопки посылаю аяксом value этой радиокнопки обработчику php. Там ищу в базе по этому value и возвращаю результат обратно в виде json. Сначала пробую вывести alertом все полученные данные. И они выводятся:

ajax код
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
jQuery(document).ready(function(e) {
jQuery("#clients_search_result").on('click', 'input', function(e){
  e.stopPropagation();
  var id_clients=jQuery($(this)).val();
  $.ajax({
    type: "POST",
    url: "hendler.php",
    data: {"id_clients": id_clients},
    success: function(result){
      alert(result);
    }
  });
});
});//конец ожидания DOM

скриншот alert


В обработчике php данные возращаю в кодировке unicode (при этом других echo и т.п. больше нет)
PHP
1
echo json_encode($myrow, JSON_UNESCAPED_UNICODE);
Но как только я пытаюсь получить любой из значений массива json (например name), выдаёт undifined

JavaScript
1
alert(result.name);


В чём дело и что не так я делаю? Хочу заполнить полученными данными input
JavaScript
1
jQuery("input[name='name").val('result.name');
Помогите, пожалуйста, разобраться.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.12.2015, 17:08
Ответы с готовыми решениями:

Ajax вывод значений json
как перебрать в Ajax ответ от сервера в json вот ответ от сервера foreach ($idproductpricedecode as $prodpriceid => $price_prod)...

Ajax вывод JSON массива
Пытаюсь вывести список регионов при нажатии на кнопку, выводит \u041c\u043e\u0441\u043a\u0432\u0430 \u0438...

Разбор JSON и вывод таблицы с одной строкой + AJAX
вот код <html> <head> <meta charset="UTF-8"> <title>JDBC Examples</title> <link rel="stylesheet"...

14
Все элементарное - сложно
133 / 118 / 50
Регистрация: 14.04.2014
Сообщений: 509
21.12.2015, 22:26
JavaScript
1
2
result = JSON.parse(result);
alert(result.name);
1
33 / 4 / 1
Регистрация: 29.05.2014
Сообщений: 144
21.12.2015, 22:30  [ТС]
mixenik,
Вообще ничего не происходит теперь. Молчит.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
jQuery(document).ready(function(e) { //ОЖИДАНИЕ DOM
jQuery("#clients_search_result").on('click', 'input', function(e){
  e.stopPropagation();
  var id_clients=jQuery($(this)).val();
  $.ajax({
    type: "POST",
    url: "hendler.php",
    data: {"id_clients": id_clients},
    success: function(result){
      result = JSON.parse(result);
      alert(result.name);
    }
  });
});
});//конец ожидания DOM
0
Все элементарное - сложно
133 / 118 / 50
Регистрация: 14.04.2014
Сообщений: 509
21.12.2015, 22:33
В консоли браузера посмотрите какую ошибку выдает? Есть вероятность, что прилетает невалидный JSON, и метод JSON.parse падает
1
33 / 4 / 1
Регистрация: 29.05.2014
Сообщений: 144
21.12.2015, 22:38  [ТС]
mixenik,
0
Все элементарное - сложно
133 / 118 / 50
Регистрация: 14.04.2014
Сообщений: 509
21.12.2015, 22:45
JSON это встроенные в DOM объект, присутствует во всех актуальных браузерах. Если бы его не было, то была бы ошибка, что браузер не может взять метод от undefined или, что parse не является функцией. Отсюда вывод, что ошибка возникает при парсинге json-строки. Попробуйте до success добавить mimeType: 'text/json',
1
33 / 4 / 1
Регистрация: 29.05.2014
Сообщений: 144
21.12.2015, 22:47  [ТС]
mixenik,
Ошибок теперь никаких не возникает, однако alert не работает - ничего вообще не происходит.
0
Все элементарное - сложно
133 / 118 / 50
Регистрация: 14.04.2014
Сообщений: 509
21.12.2015, 22:52
а вообще можно указать dataType:'json', и тогда result уже будет объектом и JSON.parse будет не нужен

Добавлено через 1 минуту
Для отладки лучше использовать console.log(result); оно выведет в консоль то, что у вас прилетает
1
33 / 4 / 1
Регистрация: 29.05.2014
Сообщений: 144
21.12.2015, 22:52  [ТС]
mixenik,
Ничего. Ошибок тоже нет. И если убрать mimeType: 'text/json' аналогичная ситуация.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
jQuery("#clients_search_result").on('click', 'input', function(e){
  e.stopPropagation();
  var id_clients=jQuery($(this)).val();
  $.ajax({
    type: "POST",
    url: "hendler.php",
    data: {"id_clients": id_clients},
    dataType:'json',
    mimeType: 'text/json',
    success: function(result){
      alert(result.name);
    }
  });
});
0
Все элементарное - сложно
133 / 118 / 50
Регистрация: 14.04.2014
Сообщений: 509
21.12.2015, 22:53
В общем попробуйте убрать mimeType и JSON.parse и установить dataType: 'json'
1
33 / 4 / 1
Регистрация: 29.05.2014
Сообщений: 144
21.12.2015, 22:54  [ТС]
mixenik, mixenik,

да, так и сделал. Ничего. Ни ошибок. Ни alert

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
jQuery("#clients_search_result").on('click', 'input', function(e){
  e.stopPropagation();
  var id_clients=jQuery($(this)).val();
  $.ajax({
    type: "POST",
    url: "hendler.php",
    dataType:'json',
    data: {"id_clients": id_clients},
    success: function(result){
      result = JSON.parse(result);
      alert(result.name);
    }
  });
});
0
Все элементарное - сложно
133 / 118 / 50
Регистрация: 14.04.2014
Сообщений: 509
21.12.2015, 22:59
console.log(result) добавьте, уберите JSON.parse (ошибся я, с dataType: 'json' он не нужен) и посмотрите, что в консоль выводится. alert может не отработать с объектом

Добавлено через 1 минуту
ночь, туплю, у вас не объект в алерте

Добавлено через 1 минуту
а добавьте после success еще и
JavaScript
1
2
3
error: function(err){
  console.log(err);
}
1
33 / 4 / 1
Регистрация: 29.05.2014
Сообщений: 144
21.12.2015, 23:05  [ТС]
mixenik,

Код:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
jQuery("#clients_search_result").on('click', 'input', function(e){
  e.stopPropagation();
  var id_clients=jQuery($(this)).val();
  $.ajax({
    type: "POST",
    url: "hendler.php",
    dataType:'json',
    data: {"id_clients": id_clients},
    success: function(result){
      console.log(result);
      alert(result.name);
    },
    error: function(err){
      console.log(err);
}
  });
});
Консоль:
0
Все элементарное - сложно
133 / 118 / 50
Регистрация: 14.04.2014
Сообщений: 509
21.12.2015, 23:16
Лучший ответ Сообщение было отмечено Mothur как решение

Решение

Подробнее по $.ajax да и вообще про jquery на русском (если проблемы с английским) можно почитать здесь

Добавлено через 2 минуты
Прикольно, он не понимает, что это json. Заголовки ответа на сервере задавали?

Добавлено через 3 минуты
на сервере header("Content-Type: application/json", true);

Добавлено через 14 секунд
не люблю PHP =)

Добавлено через 3 минуты
ну и если уж совсем ничего не помогает, можете использовать встроенную функцию в jquery result = $.parseJSON(result); не убирая dataType
1
33 / 4 / 1
Регистрация: 29.05.2014
Сообщений: 144
21.12.2015, 23:50  [ТС]
mixenik,
УРААА))) Заработало!)
Спасибо огромное!)

Рабочий вариант, если кому-то понадобится:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
jQuery(document).ready(function(e) { //ОЖИДАНИЕ DOM
jQuery("#clients_search_result").on('click', 'input', function(e){
  e.stopPropagation();
  var id_clients=jQuery($(this)).val();
  $.ajax({
    type: "POST",
    url: "hendler.php",
    data: {"id_clients": id_clients},
    success: function(result){
      alert(result.name);
    }
  });
});
});//конец ожидания DOM
А на сервере (hendler.php) указать нужно в начале коде php строчку:

PHP
1
header("Content-Type: application/json", true);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.12.2015, 23:50
Помогаю со студенческими работами здесь

Вывод значений массива в Json с передачей в текстовое поле
Уважаемые коллеги! Возникла проблема с реализацией работы Ajax,PHP и JSON. Все работает, но есть проблема. Необходимо из JSON массива...

Вывод данных через ajax с типом данных JSON
Если я из обработчика пишу это, выведет, как и ежу понятно, 1 кнопку. ... $res = mysqli_query($db, 'SELECT `podmenu_name` FROM...

Вернуть в Ajax-success $json из другого $json
Здравствуйте, уважаемые форумчане! Столкнулся со следующей проблемой. Есть код: <?php $json .= '<script> ...

AJAX и JSON данные из бд
Добрый вечер ребята, пробую вытащить данные из бд $(document).ready(function(){ $.ajax({ url:...

AJAX and JSON notation
Здравствуйте... есть: ajax.php <?php header('Content-Type: text/javascript; charset=utf-8'); ?> <?php // здесь $_GET;...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru