Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Связанные между собой данные при передачи по GET (https://javascript.ru/forum/misc/54487-svyazannye-mezhdu-sobojj-dannye-pri-peredachi-po-get.html)

zhurchik 19.03.2015 10:02

Связанные между собой данные при передачи по GET
 
Здравствуйте Уважаемые пользователи!

Ближе к делу, имеются на сайте определенные данные (в форме), которые отправляются на обработку серверу по нажатию на кнопку, так вот, данные связаны между собой и постоянно связь разная т.к. пользователь выбирает разные данные (те которые ему нужны), какую структуру данных применить и как, чтобы на стороне сервера я мог понять какие данные между собой связаны? Хочу добавить то, что массивы не подходят.
Может быть, JSON или есть что-то специальное? Поделитесь опытом, друзья!

ksa 19.03.2015 10:48

Цитата:

Сообщение от zhurchik
так вот, данные связаны между собой и постоянно связь разная т.к. пользователь выбирает разные данные (те которые ему нужны), какую структуру данных применить и как, чтобы на стороне сервера я мог понять какие данные между собой связаны? Хочу добавить то, что массивы не подходят.

Ты считаешь, что на основе этой "информации" можно давать какие-то дельные советы?

laimas 19.03.2015 11:46

Хочу добавить то, что массивы не подходят. Может быть, JSON или есть что-то специальное?

Ага, "заказное" ) А что такое JSON?

zhurchik 19.03.2015 13:11

laimas,
Ну json это, по сути, тот же самый массив, но все же именно сами массивы в JS работают иначе

laimas 19.03.2015 13:35

JSON, это всего лишь способ описывающий различные данные, которыми могут быть строки, массивы, объекты, и представляет собой строку. А массивы они везде массивы, сами они не могут работать, а то что в JS меньше методов работы с ними, не означает что в JS массивы иные.

В JS нет ассоциативных массивов, это да, но есть объекты, что для РНР будь они ему переданы, будет являться обычным ассоциативным массивом, и которых вам с лихвой хватит что-то там связать.

zhurchik 19.03.2015 14:03

laimas,
Если со стороны клиента будет отправлена строка в формате json то достаточно ли на стороне сервера поместить эту строку в функцию json_decode и если она вернет не null то уже обрабатывать его как массив с соответствующими правилами? Или еще какие то проверки нужно осуществлять?

laimas 19.03.2015 14:09

Можно, но зачем вам JSON со стороны клиента, если можно отправить просто массив?

zhurchik 19.03.2015 15:34

laimas,
Я думал отправить массив, но это слишком извращенно, вот смотрите:
Так будет выглядеть массив в адресной строке

option[param1][param2][param3][param4]=1

И таких массивов может быть и 5 и 10 и параметров может быть больше, вот только на конце значения будут меняться, то-бишь:

option[param1][param2][param3][param4]=1&option[param1][param2][param3][param4]=2&option[param1][param2][param3][param4]=3&option[param1][param2][param3][param4]=n.....

На выходе получается очень много повторений, а вот с JSON таких повторений не будет.

Что скажете?

laimas 19.03.2015 16:08

А кто вас заставляет такое руками писать? Если асинхронный обмен и используется jQery, то можете использовать один из ее методов сериализации формы: .serialize(), .serializeArray().

Если все-таки хочется JSON, то JSON.stringify(object), лишь бы ваш безразмерный массив не превышал глубину рекурсии.


Часовой пояс GMT +3, время: 16:02.