powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите сформировать и вывести JSON
20 сообщений из 20, страница 1 из 1
Помогите сформировать и вывести JSON
    #38890956
JesterOK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем еще раз привет. Прошу помощи, один раз меня уже наставили на путь истинный, но вот поять незадача:

Нужно вывести таблицу из РНР, решено по правильному было сделать это через JSON и уже обрабатывать на JS

Код php
Код: 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.
    // если есть записи в ТР, то формируем JSON для отправки клиенту
    $key=0;
    $php_arr = array(); 
    $php_array = array(); 
    foreach($rowData as $oneRow){

$php_arr += 	array(
						'num'=>$key,					
					'stud'=>array (
						'id'=>$oneRow['id'],
						'grup'=>$oneRow['grup'],
						'fam'=>$oneRow['fam'],
						'god'=>$oneRow['god'],
						'pobed'=>$oneRow['pobed'],
						'mesto'=>$oneRow['mesto'],
						'data'=>$oneRow['data'],
						'sorevnovanie'=>$oneRow['sorevnovanie']
						)
						);					

				$key=$key+1;
    				}//foreach		
    			
            $js_json = json_encode($php_arr);
    			echo $js_json;
			}
 }



Выхлоп FireBug:

{"num":4,"stud":{"id":"334","grup":"НП-1","fam":"ФамТест","god":"2018","pobed":null,"mesto":null,"data":null,"sorevnovanie":null}}

Все бы ничего, но это данные на одну строку, а мне нужно передать множество строк, ну то есть таких записей допустим 5, именно для этого добавлено поле 'num'=>$key, в которое записывается количество

Но что бы я не делал - не могу обьединить массивы - на выходе получается нужный массив, но обрамленный [], и то я не до конца понял как так получилось

Ворпос: как мне правлиьно сформировать данные в нужном формате? может мне и не нужен JSON, просто его так ужобно обрабатывать, и как бы пишут что так правильно делать, хочется же разорабться, а не городить тонну г...кода.
...
Рейтинг: 0 / 0
Помогите сформировать и вывести JSON
    #38890994
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot JesterOK]
Код php
Код: php
1.
   $php_arr +=



Да вы батенька извращенец
...
Рейтинг: 0 / 0
Помогите сформировать и вывести JSON
    #38890996
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kunaksergey,
Запихни свои данные в двухмерный массив и выкинь одним есho'm
...
Рейтинг: 0 / 0
Помогите сформировать и вывести JSON
    #38891001
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
<?php

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
$php_array = array(); 
    
	foreach($rowData as $oneRow){

	$php_array[]= array (
					'grup'=>$oneRow['grup'],
					'fam'=>$oneRow['fam'],
					'god'=>$oneRow['god'],
					'pobed'=>$oneRow['pobed'],
					'mesto'=>$oneRow['mesto'],
					'data'=>$oneRow['data'],
					'sorevnovanie'=>$oneRow['sorevnovanie']
						)
	}
$js_json = json_encode($php_array);
echo $js_json;		

 }


?>
Только это вопрос по PHP а не js
...
Рейтинг: 0 / 0
Помогите сформировать и вывести JSON
    #38893068
JesterOK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В том то и дело что не рабаотет - выхлоп идет не JSON.

Привожу FireBUG:
Код: xml
1.
[{"id":"305","grup":"Чтото за группа","fam":"йцуй","god":"2018","pobed":null,"mesto":null,"data":null,"sorevnovanie":null},{"id":"306","grup":"Чтото за группа","fam":"Иванов","god":"2018","pobed":null,"mesto":null,"data":null,"sorevnovanie":null}]



Все дело ка кмне кажется что массив заключен в [] - так не длолжно быть.
...
Рейтинг: 0 / 0
Помогите сформировать и вывести JSON
    #38893095
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JesterOKВ том то и дело что не рабаотет - выхлоп идет не JSON.
...
Все дело ка кмне кажется что массив заключен в [] - так не длолжно быть.
Массив и должен быть в [].

А вот ключи вместе со значениями все (!) должны быть в двойных кавычках...
...
Рейтинг: 0 / 0
Помогите сформировать и вывести JSON
    #38893098
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JesterOKвыхлоп идет не JSON.

Привожу FireBUG:
Код: xml
1.
[{"id":"305","grup":"Чтото за группа","fam":"йцуй","god":"2018","pobed":null,"mesto":null,"data":null,"sorevnovanie":null},{"id":"306","grup":"Чтото за группа","fam":"Иванов","god":"2018","pobed":null,"mesto":null,"data":null,"sorevnovanie":null}]



Я сунул этот массив в свой тестовый пример - данные пришли. Значит таки JSON!
...
Рейтинг: 0 / 0
Помогите сформировать и вывести JSON
    #38893102
Фотография -k2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорри, что вмешиваюсь со своими комплексами, но почему-то выбешивает, когда пишут grup вместо group, fam-last_name, god-year и проч.
...
Рейтинг: 0 / 0
Помогите сформировать и вывести JSON
    #38893107
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-k2-но почему-то выбешивает
расслабьтесь
...
Рейтинг: 0 / 0
Помогите сформировать и вывести JSON
    #38893109
JesterOK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa,

Но у меня не рабоатет. Я не могу обращаться к элементам массива, т.к. браузер не может определить что данные идут в JSON.

Привожу выхлоп FireBUG с моим массивом который добавляется по [], а так же сформированный массив, взятый в интернете.

Тестовый массив
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
$cart = array(	  
	  "contents" => array(
	    array(
	      "productID" => 34,
	      "productName" => "Супер товар",
	      "quantity" => 1
	    ),
	    array(
	      "productID" => 56,
	      "productName" => "Чудо товар",
	      "quantity" => 3
	    )
	  )
	);    	



Мой:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
$php_arr[] = 	array(
						//'num'=>$key,					
					//'stud'=>array (
						'id'=>$oneRow['id'],
						'grup'=>$oneRow['grup'],
						'fam'=>$oneRow['fam'],
						'god'=>$oneRow['god'],
						'pobed'=>$oneRow['pobed'],
						'mesto'=>$oneRow['mesto'],
						'data'=>$oneRow['data'],
						'sorevnovanie'=>$oneRow['sorevnovanie']
						//)
						);



Оба массива в одном файле, я просто имена меняю в функции декодирования.
...
Рейтинг: 0 / 0
Помогите сформировать и вывести JSON
    #38893110
JesterOK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-k2-,
Я полностью с Вами соглшасен, отвечу почему - у меня в одном из файлов по обработке запроса group идентифицировался как служебное слово (не знаю как правильно называется), поэтому я делаю так. Пока это прототип сайта, в будущем все будет причесано по лучше. Пока не стал заострять на такой мелочи внимание.
...
Рейтинг: 0 / 0
Помогите сформировать и вывести JSON
    #38893119
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JesterOKНо у меня не рабоатет.
Я с ПХП не работаю, т.ч. твои скрипты мало, что дадут...

Я просто скопировал твой массив из сообщения, и вставил его в свой тестовый пример на Ангуларе (там только с json работают). Скрипт дал "Ок" на приеме...

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
	var url='tmp2.csp';
	$http({
		method: 'GET',
		url: url
	}).success(function(data) {
		alert('Ok');
	}).error(function(data, status, headers, config){
		alert('No');
	});


Значит расхождения по формату нет.
...
Рейтинг: 0 / 0
Помогите сформировать и вывести JSON
    #38893126
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JesterOK , вот смотри, простой пример на тест формата

tmp.csp (на расширения не обращай внимания, у нас такая СУБД)
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<!DOCTYPE html>
<html ng-app='appTest'>
<head>
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	$.getJSON('tmp1.csp',{},function(Arr){
		alert(Arr.length);
	})
});
</script>
</head>
<body> 
</body>
</html>


Ну и твой Json
tmp1.csp
Код: javascript
1.
2.
3.
4.
[
	{"id":"305","grup":"Чтото за группа","fam":"йцуй","god":"2018","pobed":null,"mesto":null,"data":null,"sorevnovanie":null},
	{"id":"306","grup":"Чтото за группа","fam":"Иванов","god":"2018","pobed":null,"mesto":null,"data":null,"sorevnovanie":null}
]


Скрипт показывает наличие 2-х элементов. Значит ошибки в формате нет. Данные пришли и читаются нормально.
...
Рейтинг: 0 / 0
Помогите сформировать и вывести JSON
    #38893190
JesterOK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел зависимость: нет корневого элемента, как в тестовом примере. Там это
Код: javascript
1.
 "contents" => array(



Для обращения к конкретному элементу я делаю примерно так:
Код: javascript
1.
alert(json.contents[0].productID);



У меня эе голоый массив, и соответсвенно я не могу обратиться к элементу.
Может есть каки ето мысли ??
Если начать изучать Agular - то как много усилий будет для реализации такого взамиодействия ? мне по сути пока только это нужно, хотя про фреймворк почитал - очень интересно.
...
Рейтинг: 0 / 0
Помогите сформировать и вывести JSON
    #38893227
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JesterOKНашел зависимость: нет корневого элемента, как в тестовом примере. Там это
Код: javascript
1.
 "contents" => array(


Для обращения к конкретному элементу я делаю примерно так:
Код: javascript
1.
alert(json.contents[0].productID);



У меня эе голоый массив, и соответсвенно я не могу обратиться к элементу.
Я не совсем понимаю суть проблемы... Но вот пример обращения к твоим данным.
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<!DOCTYPE html>
<html ng-app='appTest'>
<head>
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	$.getJSON('tmp1.csp',{},function(Arr){
		alert(Arr[0].id+' '+Arr[0].grup);
	})
});
</script>
</head>
<body> 
</body>
</html>


JesterOKЕсли начать изучать Agular - то как много усилий будет для реализации такого взамиодействия ? мне по сути пока только это нужно, хотя про фреймворк почитал - очень интересно.
Не совсем понял про какое "взаимодействие" идет речь... Если просто для прочтения некоего json, то особого смысла нет...
...
Рейтинг: 0 / 0
Помогите сформировать и вывести JSON
    #38893230
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JesterOK , d моих последних примерах нет Ангулара... jquery онли.
...
Рейтинг: 0 / 0
Помогите сформировать и вывести JSON
    #38893343
JesterOK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa, - огромное спасибо что ткнули меня носом туда куда нужно.

Вы знаете - ведь вы абсолютно правы! Моя ошибка была в том, что я напроч забил на вывод, и смотрел только данные в отладчике на предмет JSON не JSON.

Да- таким образом я могу получить элементы массива и распарсить их.

Мне конечно все еще интересно почему данные не воспринимаются как валидные, но я думаю если в будущем доберусь до изучения фреймворка, то там все это уже реализовано на нихком уровне.

PS еще ворпос: какой фреймворк по JS с низким порогом вхождения для новичка посоветуете ??

Модератор: Тема перенесена из форума "HTML, JavaScript, VBScript, CSS".
...
Рейтинг: 0 / 0
Помогите сформировать и вывести JSON
    #38893446
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JesterOKкакой фреймворк по JS с низким порогом вхождения для новичка посоветуете ??
На мой взгляд, новичку лучше таки изучить сам javascript... Тогда ему и фреймворки будут не нужны. Либо он сам точно будет знать почему воспользовался тем или иным.

JavaScript один из тех языков, в котором все можно сделать самостоятельно, зная только его.
...
Рейтинг: 0 / 0
Помогите сформировать и вывести JSON
    #38893456
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JesterOKМне конечно все еще интересно почему данные не воспринимаются как валидные
Почитай вот эту статейку...
http://learn.javascript.ru/json

Там есть рассказ о валидности данных и ключей...
...
Рейтинг: 0 / 0
Помогите сформировать и вывести JSON
    #38893488
JesterOK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем большое за ответы и пояснения.
Очень не люблю такие ситуации, когда ты ищешгь решения, а в конце автор темы таки разобрался и слился =(
Сам не буду таким и приведу решение, чтоб если новичку потребуется решение - оно было тут.

Решил пойти путем, который мне подсказаывали в самом начале - если хочешь использовать табличный плагин, таки посомтри его синтаксис.

Как табличный плагин наиболее функционален jQuery Grid Plugin.

В статье по его применение и настройке (на русском) есть пример вывода массива. Приведу его сдесь:

Код: php
1.
2.
3.
4.
5.
6.
7.
$i=0;
    while($row = $res->fetch(PDO::FETCH_ASSOC)) {
        $response->rows[$i]['id']=$row['id'];
        $response->rows[$i]['cell']=array($row['id'], $row['surname'], $row['fname'], $row['lname']);
        $i++;
    }
    echo json_encode($response);



Сдесь я убирал первую строку, ведь мне нужен только валидный JSON.

И данный пример как раз таки формирует валидный двумерный массив, который отлично преобразуется в JSON

{"rows":[["330","фыва"],["331","фам"],["332","Шахматов"],["333","фам"],["334","ФамТест"]]}

Проверил методами $.ajax и $.getJSON - оба принимают его нормально.

И да: ссылка на статью по интеграции jQuery Grid Plugin с Вашим сайтом. Надеюсь пригодится.

Цылка
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите сформировать и вывести JSON
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]