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

Как обратиться к элементу массива, полученному с php?

11.08.2016, 12:02. Показов 1927. Ответов 11

Студворк — интернет-сервис помощи студентам
Добрый день, с сервера отправляется массив следующего вида
PHP
1
2
$temp=array('_port'=>$sms->port,'_number'=>$sms->number,'_text'=>$sms->text);
    print_r($temp);
В скрипте написано следующее
JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function show()  
{  
    $.ajax({
        type:'GET',
        url: 'incoming_sms.php',
        async:false,
        cache: false,
        success: function(res){
            console.log(res);
            //$("#incoming").html(res);
        },
    });
}  
$(document).ready(function(){  
    show();  
    setInterval('show()',10000);  
});
В консоли возвращает следующее
Кликните здесь для просмотра всего текста
Array
(
[_port] => 0
[_number] => lifecell
[_text] => Hа Вашем счете меньше1 грн. Пополняйте счет заранее и оставайтесь на связи. Вы можете пополнять счет банковской картой на oplata.lifecell.com.ua
)

Если в php пишу
PHP
1
print_r(json_enode($temp));
Возвращает в консоль следующее
Кликните здесь для просмотра всего текста
{"_port":0,"_number":"lifecell","_text": "H\u0430 \u0412\u0430\u0448\u0435\u043c \u0441\u0447\u0435\u0442\u0435 \u043c\u0435\u043d\u044c\u0448\u04351 \u0433\u0440\u043d. \u041f\u043e\u043f\u043e\u043b\u043d\u04 4f\u0439\u0442\u0435 \u0441\u0447\u0435\u0442 \u0437\u0430\u0440\u0430\u043d\u0435\u04 35 \u0438 \u043e\u0441\u0442\u0430\u0432\u0430\u04 39\u0442\u0435\u0441\u044c \u043d\u0430 \u0441\u0432\u044f\u0437\u0438. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043f\u043e\u043b\u043d\u04 4f\u0442\u044c \u0441\u0447\u0435\u0442 \u0431\u0430\u043d\u043a\u043e\u0432\u04 41\u043a\u043e\u0439 \u043a\u0430\u0440\u0442\u043e\u0439 \u043d\u0430 oplata.lifecell.com.ua"}

если в js пишу JSON.parse(res); в консоли пишет invalid
Прошу помощи у гуру
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.08.2016, 12:02
Ответы с готовыми решениями:

Как обратиться к предыдущему элементу массива
Доброго времени суток. В общем задача такова: нужно создать двумерный массив 20 на 20 в котором изначально известны только 2 значения - A и...

Как обратиться к элементу коллекции, если в ней остался один элемент?
Всем привет. Подскажите,плиз, как обратиться к элементу коллекции, если в ней остался один элемент, т.е. как определить, что только...

Как обратиться к элементу формы, если его имя содержит квадратные скобки?
Если есть форма, в которой присутствуют такие элементы: Как мне к ним обратиться при нажатии на кнопку. Если я пишу IE сообщает...

11
123 / 62 / 37
Регистрация: 22.05.2016
Сообщений: 174
11.08.2016, 13:10
Возможно надо добавить тип данных в запросе, и лучше использовать POST:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
$.ajax({
        type:'POST',
        url: 'incoming_sms.php',
        async:false,
        cache: false,
        dataType: 'json',
        success: function(res){
            console.log(res);
            //$("#incoming").html(res);
        },
    });
0
0 / 0 / 1
Регистрация: 26.04.2015
Сообщений: 40
11.08.2016, 13:26  [ТС]
Пробовал, не то пальто вообще не реагирует
0
 Аватар для Уф
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
11.08.2016, 13:29
вместо print_r($temp); пиши в пхп скрипте echo json_encode($temp); а в ява скрипте ответ var ans = JSON.parse(res); и потом сможешь к нему обращаться как к массиву
0
0 / 0 / 1
Регистрация: 26.04.2015
Сообщений: 40
11.08.2016, 13:40  [ТС]
Цитата Сообщение от Уф Посмотреть сообщение
вместо print_r($temp); пиши в пхп скрипте echo json_encode($temp); а в ява скрипте ответ var ans = JSON.parse(res); и потом сможешь к нему обращаться как к массиву
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function show()  
{  
    $.ajax({
        type:'POST',
        url: 'incoming_sms.php',
        async:false,
        cache: false,
        dataType: 'json',
        success: function(res){
            var ans = JSON.parse(res);
            console.log(res._port);
            $("#incoming").html(res._port);
        },
    });
}  
$(document).ready(function(){  
    show();  
    setInterval('show()',10000);  
});
пробовал тоже ничего не отвечает
в консоли пусто

Добавлено через 6 минут
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function show()  
{  
    $.ajax({
        type:'POST',
        url: 'incoming_sms.php',
        async:false,
        cache: false,
        dataType: 'json',
        success: function(res){
            var ans = JSON.parse(res);
            console.log(ans._port);
            $("#incoming").html(ans._port);
        },
    });
}  
$(document).ready(function(){  
    show();  
    setInterval('show()',10000);  
});
Точнее так
0
0 / 0 / 1
Регистрация: 26.04.2015
Сообщений: 40
11.08.2016, 14:13  [ТС]
Вот что в консоли светиться
Миниатюры
Как обратиться к элементу массива, полученному с php?  
0
 Аватар для Уф
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
11.08.2016, 14:29
ну так у тебя массив строк же, вот сомтри console.log(ans[0]._port); будет работать, если хочешь все вывести перебирай его уже как там надо
0
0 / 0 / 1
Регистрация: 26.04.2015
Сообщений: 40
11.08.2016, 14:51  [ТС]
пробовал тоже не пашет
0
 Аватар для Уф
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
11.08.2016, 15:41
так попробуй console.log(ans[0]['_port']);
0
0 / 0 / 1
Регистрация: 26.04.2015
Сообщений: 40
11.08.2016, 16:50  [ТС]
Цитата Сообщение от Уф Посмотреть сообщение
так попробуй console.log(ans[0]['_port']);
У меня щас истерика будет)))так тоже не пашет

Добавлено через 19 минут
в консоли пишет след..
VM2094:1 Uncaught SyntaxError: Unexpected token { in JSON at position 682
success incoming.js:9
fire jquery.js:3243
fireWith jquery.js:3373
done jquery.js:9098
(anonymous function) jquery.js:9340
0
 Аватар для Уф
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
11.08.2016, 17:56
Лучший ответ Сообщение было отмечено pai как решение

Решение

http://jsonlint.com/ вот тут можно на валидность джсон проверять. добейся для начала чтобы сервер валидную строку возвращал, то что ты привел в спойлере в первом посте валидный джсон, т.е. без ошибок, значит он распарсится как надо.
1
0 / 0 / 1
Регистрация: 26.04.2015
Сообщений: 40
12.08.2016, 11:37  [ТС]
Цитата Сообщение от Уф Посмотреть сообщение
http://jsonlint.com/ вот тут можно на валидность джсон проверять. добейся для начала чтобы сервер валидную строку возвращал, то что ты привел в спойлере в первом посте валидный джсон, т.е. без ошибок, значит он распарсится как надо.
Спасибо огромное задали правильное направление, пошел разбираться с генерацией массивов объектов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.08.2016, 11:37
Помогаю со студенческими работами здесь

Обратиться к элементу Dom
Добрый вечер ув. пользователи! Есть такая структура.. <div class="test"> <table> <tbody> <tr> <td><td> ...

обратиться к нажатому элементу
Помогите решить задачу, вот с чем столкнулся К примеру есть <ul> <li>text1 <ul> <li>text2</li> ...

Обратиться к соседнему элементу блока
Добрый вечер. столкнулся с проблемой <ul class="service_menu_ul"> <li> <a href="#">asdasd</a> <ul...

Обратиться к i-ому элементу коллекции
Создал коллекцию картинок из контейнера. var collection = $('.popup-wrapper').find('img'); А теперь надобно обратиться к i-му её...

Как обратиться к элементу массиву типа string полученному из dll
Из Dll в asp код передается массив типа string функцией 'ShowHtmArray'. <% dim StrOutHtml StrOutHtml =...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
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 - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru