Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.52/23: Рейтинг темы: голосов - 23, средняя оценка - 4.52
2 / 0 / 1
Регистрация: 06.09.2011
Сообщений: 128

Json вывод массива в php

09.08.2014, 20:56. Показов 4950. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте,
загружаю json массив через ajax для обработки, для проверки его вывожу назад получаю null
вычитала что из-за некорректного построения массива
помогите с правильным видом массива
вот массив мой
[{"a":"128", "b":"1"}, {"a":"58", "b":"2"}]
делала проверку использовала только один параметр, тут нет ошибок
PHP
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
26
27
28
29
30
31
32
$json[] = '{"a":"128", "b":"1"}';
//$json[] = [{"a":"128", "b":"1"}, {"a":"58", "b":"2"}]; ну в таком виде соответственно ошибка
// ПРОВЕРКА
foreach ($json as $string) {
    echo 'Декодируем: ' . $string;
    json_decode($string);
 
    switch (json_last_error()) {
        case JSON_ERROR_NONE:
            echo ' - Ошибок нет';
        break;
        case JSON_ERROR_DEPTH:
            echo ' - Достигнута максимальная глубина стека';
        break;
        case JSON_ERROR_STATE_MISMATCH:
            echo ' - Некорректные разряды или не совпадение режимов';
        break;
        case JSON_ERROR_CTRL_CHAR:
            echo ' - Некорректный управляющий символ';
        break;
        case JSON_ERROR_SYNTAX:
            echo ' - Синтаксическая ошибка, не корректный JSON';
        break;
        case JSON_ERROR_UTF8:
            echo ' - Некорректные символы UTF-8, возможно неверная кодировка';
        break;
        default:
            echo ' - Неизвестная ошибка';
        break;
    }
 
    echo PHP_EOL;
как мне получить правильно массив и начать использовать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.08.2014, 20:56
Ответы с готовыми решениями:

Вывод значения из массива [PHP + JSON]
Всем привет:Вот проблемка есть массив,каким образом можно вытащить значения,с -> => stdClass Object и с => => stdClass...

php json вывод в браузер
объясните что я делаю не так. мне нужно при переходе на страничку test.php с содержимым- <?php $test = array('html'=>'<font...

Вывод данных из json.php
Всем привет :) прошу прощения, что в очередной раз обращаюсь, проблема в том, что не могу вывести данные из json файла. Пожалуй начну...

22
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
09.08.2014, 22:09
PHP
1
2
$arr = json_decode('[{"a":128,"b":1},{"a":58,"b":2}]', true);
var_dump($arr);
0
2 / 0 / 1
Регистрация: 06.09.2011
Сообщений: 128
09.08.2014, 23:08  [ТС]
Делаю
PHP
1
2
3
$mes = $_REQUEST['mes'];
$arr = json_decode($mes, true);
var_dump($arr);
из ajax
JavaScript
1
2
3
4
5
6
7
8
 $.ajax({     type: "POST",
                       url:"con.php",
            dataType: 'json',
                       data: 'mes='+JSON.stringify(data),
            success:function(mes){
                     alert(mes );
                    }       
    });
а как мне посмотреть, что сейчас из себя $arr
и можно ли его вернуть в ajax, для просмотра?

Сейчас в такой комбинации окна не выходит(
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
09.08.2014, 23:40
Лучший ответ Сообщение было отмечено wredyatina как решение

Решение

wredyatina, не совсем понимаю в чем заключается вопрос. Как вернуть json из php скрипта? Можно, например, так
PHP
1
2
3
<?php
header('Content-Type: application/json');
echo json_encode( array('foo' => 'bar') );
JavaScript
1
2
3
4
5
6
7
$.ajax({
        type: "POST",
        url: "test.php",
        success: function(json) {
            alert(JSON.stringify(json));
        }
    });
0
2 / 0 / 1
Регистрация: 06.09.2011
Сообщений: 128
12.08.2014, 21:37  [ТС]
Начну сначала)
1 Есть форма из которой передаются данные в js
2 создается массив и передается в php через ajax json
3 в php массив обрабатывается и передаются данные в бд или на почту)

пункт 1 и 2 у меня выполнены, но не получается проверить, дошел ли массив до php, ну еще хорошо бы перепроверить в каком виде он дошел, чтобы сделать правильный вывод из него

я делала возвращения разными способами, но он у меня возвращает вместо массива null

соответственно пока у меня null я не могу приступить к пункту 3, т.к. не вижу смысла в продолжении, если до этого не смогла проверить работоспособность кода

массив у меня приходит в виде [{"a":"128", "b":"1"}, {"a":"58", "b":"2"}]
но проверку не проходит, пишет что синтаксическая ошибка...((( думаю из-за этого null, может конечно еще из-за чего незнаю...

JavaScript
1
2
3
4
5
6
7
8
9
10
 $.ajax({    type: "POST",
           url:"con.php",
      dataType: 'json',
           data: 'mes='+JSON.stringify(data),
            success:function(mes){
                     alert(JSON.stringify(mes));
                    }       
    });
        
        return false;
PHP
1
2
header('Content-Type: application/json');
echo json_encode( array('foo' => 'bar') );
так тоже null

Пожалуйста помогите, а то уже давно мучаюсь, а решить не получается((
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
12.08.2014, 22:02
щас проверил, вот такой код у меня работает
test.php
PHP
1
2
3
4
5
<?php
if (isset($_POST['mes'])) {
    header('Content-Type: application/json');
    echo json_encode( $_POST['mes'] );
}
test.html
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
    var data = [{"a":"128", "b":"1"}, {"a":"58", "b":"2"}];
    $.ajax({
        type: "POST",
        url: "test.php",
        dataType: "json",
        data: "mes="+JSON.stringify(data),
        success: function(json) {
            alert(JSON.stringify(json));
        }
    });
</script>
0
2 / 0 / 1
Регистрация: 06.09.2011
Сообщений: 128
12.08.2014, 22:41  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
А это что за файл подключен?)
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
12.08.2014, 22:45
Цитата Сообщение от wredyatina Посмотреть сообщение
А это что за файл подключен?)
jquery
0
2 / 0 / 1
Регистрация: 06.09.2011
Сообщений: 128
12.08.2014, 23:02  [ТС]
jquery и у меня подключен, я думала может какая-то доп библиотека или тп

не работает(( null и все тут(((
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
12.08.2014, 23:12
Лучший ответ Сообщение было отмечено wredyatina как решение

Решение

А что выводит такой код?
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
    var data = [{"a":"128", "b":"1"}, {"a":"58", "b":"2"}];
    $.ajax({
        type: "POST",
        url: "test.php",
        //dataType: "json",
        //data: "mes="+JSON.stringify(data),
        data: "mes=123",
        success: function(json) {
            //alert(JSON.stringify(json));
            alert(json);
        }
    });
</script>
PHP
1
2
3
4
5
6
<?php
if (isset($_POST['mes'])) {
    //header('Content-Type: application/json');
    //echo json_encode( $_POST['mes'] );
    echo $_POST['mes'];
}
Добавлено через 1 минуту
можешь выложить (именно выложить а не скопировать содержимое в пост, и именно тот самый файл который запускаешь) php файл
0
2 / 0 / 1
Регистрация: 06.09.2011
Сообщений: 128
12.08.2014, 23:27  [ТС]
Jewbacabra, все норм выходит если использовать обычные переменные я уже не раз проверяла
Цитата Сообщение от Jewbacabra Посмотреть сообщение
можешь выложить (именно выложить а не скопировать содержимое в пост, и именно тот самый файл который запускаешь) php файл
???
поясни плиз, там только текст который ты прислал)
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
12.08.2014, 23:33
Цитата Сообщение от wredyatina Посмотреть сообщение
поясни плиз, там только текст который ты прислал)
есть подозрение что проблема в том, что до <?php в файле есть что-то еще (например пробелы или перенос строки, или BOM) Если это BOM, то будет казаться что что файл начинается с <, но это не так
0
2 / 0 / 1
Регистрация: 06.09.2011
Сообщений: 128
12.08.2014, 23:47  [ТС]
Нет в начале нет ничего, была бы сразу ошибка)

Добавлено через 12 секунд
Да и не работали бы другие варианты
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
12.08.2014, 23:51
Цитата Сообщение от wredyatina Посмотреть сообщение
Нет в начале нет ничего, была бы сразу ошибка)
как проверила?
Цитата Сообщение от wredyatina Посмотреть сообщение
Да и не работали бы другие варианты
совсем не обязательно

все-таки еще раз попрошу выложить этот файл
0
2 / 0 / 1
Регистрация: 06.09.2011
Сообщений: 128
12.08.2014, 23:56  [ТС]
Jewbacabra, Сейчас выложу)

Добавлено через 23 секунды
PHP
1
2
ini_set("display_errors",1);
error_reporting(E_ALL);
Добавлено через 33 секунды
проверка)
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
13.08.2014, 00:00
Цитата Сообщение от wredyatina Посмотреть сообщение
проверка)
тут не в этом дело...
0
2 / 0 / 1
Регистрация: 06.09.2011
Сообщений: 128
13.08.2014, 00:01  [ТС]
Вот
Вложения
Тип файла: zip basket_order_site.zip (329 байт, 2 просмотров)
0
2 / 0 / 1
Регистрация: 06.09.2011
Сообщений: 128
13.08.2014, 00:34  [ТС]
я уже видимо так устала и переделывала миллион раз, что у меня уже скоро ничего работать видимо не будет((

Добавлено через 6 минут
Твою же ты м...
нашла ОШИБКУ, плохая привычка моя, кнопка по вызову jguery стояла insert[submit], поменяла на button все проверочные функции заработали....
сейчас посмотрю основной код мой

Добавлено через 24 минуты
Вроде бы возвращает массив)
у меня получился массив: [{"id_prod":"125", "count":"1"},{"id_prod":"38", "count":"2"}]
теперь чтобы получить переменную
PHP
1
2
3
$mes = $_REQUEST['mes'];
$arr = json_decode($mes, true);
var_dump($arr[0]['count']);
JavaScript
1
2
3
 success: function(mes) {
        alert(mes);     
        }
так?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
13.08.2014, 00:35
догадка про bom не подтвердилась.
может проблема в json_encode. попробуй так
Вложения
Тип файла: rar test.rar (537 байт, 9 просмотров)
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
13.08.2014, 00:38
Цитата Сообщение от wredyatina Посмотреть сообщение
так?
так, только echo вместо var_dump
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.08.2014, 00:38
Помогаю со студенческими работами здесь

Сохранение JSON-массива в PHP
Сообщение перенесено из темы https://www.cyberforum.ru/javascript/thread1265841.html Вообщем вот массив : Нужно вот такой вот...

Вывод массива из json
{ &quot;info&quot;: { &quot;people&quot;: } } Нужно вывсети в таблицу значения из всех age и name. И возможно как-то сделать, чтобы 2...

Вывод из массива json
Помогите, как сделать так ,чтобы в случае если пользователь не задал никаких параметров поиска, а просто нажал на кнопку выводилась в вся...

Json. вывод из массива
{&quot;response&quot;:} Как из этой строчки вытащить например имя? $obj = json_decode($news, true); echo...

Передача массива из JavaScript(AJAX, JSON) в PHP
Добрый вечер! Ребят, тут такое дело, имеется схема зала с местами. У каждого места есть свой ID. По клику мы запоминаем ID (не больше...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
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