Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Как передать массив из PHP, в HTML-форму?


Автор: Win MK 32 21.3.2009, 01:04
Как передать массив из PHP, в HTML-форму?

Вот так не выходит. Получается чушь.
Код

<input type="hidden" name="history[]" value="<?PHP print_r($_GET['history']); ?>">

Автор: enof 21.3.2009, 01:10
Нужно передать массив на следующую страницу?
Посмотрите в сторону сессий, либо serialize()

Автор: NNaarreekk 21.3.2009, 11:16
Код

for($i=0;$i<count($_GET['history']);$i++){
echo"<input type=\"hidden\" name=\"history[]\" value=\"".$_GET['history'][$i]."\">\n";
}

Автор: getme 21.3.2009, 11:57
у него массив может быть глубокий, так что лучше serialize

Автор: IZ@TOP 21.3.2009, 13:00
Цитата(getme @  21.3.2009,  12:57 Найти цитируемый пост)
у него массив может быть глубокий, так что лучше serialize 

Не учите людей всякой каке. В данном случае имеет смысл использовать http://php.net/session.

Автор: Win MK 32 21.3.2009, 15:45
Пришлось на сессии переписывать. Но такой исход мне не нравится.
Из-за неудаленных сессий получатся дикие ошибки.

А при первом добавлении сессии(если массива еще нет) функции in_array (для проверки уникальности очередного элемента массива; сессии наровят добавяться несколько раз, если страницу обновлять) выдает ошибку.

Вообщем сессии очень и очень плохой выход.

Автор: enof 21.3.2009, 15:47
Цитата(Win MK 32 @  21.3.2009,  15:45 Найти цитируемый пост)
Вообщем сессии очень и очень плохой выход. 

возможно проблемы не в сессиях?

Автор: IZ@TOP 21.3.2009, 15:49
Цитата(Win MK 32 @  21.3.2009,  16:45 Найти цитируемый пост)
Вообщем сессии очень и очень плохой выход. 

Плохому танцору - известно, что мешает. Почитайте доку по сессиям, подумайте. Если что-то не получается - спросите. Желательно с примерами кода.

Автор: getme 21.3.2009, 17:34
Цитата(IZ@TOP @ 21.3.2009,  13:00)
Цитата(getme @  21.3.2009,  12:57 Найти цитируемый пост)
у него массив может быть глубокий, так что лучше serialize 

Не учите людей всякой каке. В данном случае имеет смысл использовать http://php.net/session.

аргументируй

Автор: enof 21.3.2009, 17:39
getme, 
если передавать через форму большие массивы, то затраты на траффик + serialize() + unserialize().
В случае с сессиями массив никуда не отправляется, а остается на сервере.

Автор: IZ@TOP 21.3.2009, 18:04
Цитата(getme @  21.3.2009,  18:34 Найти цитируемый пост)
аргументируй 


1. Трудозатраты по отслеживанию и передаче history через GET параметры не сопоставимы с аналогом данной операции написанной с использованием сессий.
2. Передача данных через GET параметр имеет ограничение.
3. Передача информации по незащищенной линии ставит под вопросом конфиденциальность пользовательских данных.

Еще что-нибудь добавить?

Автор: Win MK 32 21.3.2009, 18:13
Цитата(IZ@TOP @  21.3.2009,  13:49 Найти цитируемый пост)
Плохому танцору - известно, что мешает.

А все остальное, что я написал в своем посте вы тоже считате глупостями? Может быть скажите почему я не прав?

Никто так и не сказал как быть с делемой:
Цитата(Win MK 32 @  21.3.2009,  13:45 Найти цитируемый пост)
А при первом добавлении сессии(если массива еще нет) функции in_array (для проверки уникальности очередного элемента массива; сессии наровят добавяться несколько раз, если страницу обновлять) выдает ошибку.

Автор: IZ@TOP 21.3.2009, 18:49
Цитата(Win MK 32 @  21.3.2009,  19:13 Найти цитируемый пост)
Никто так и не сказал как быть с делемой:


Цитата(IZ@TOP @  21.3.2009,  16:49 Найти цитируемый пост)
. Если что-то не получается - спросите. Желательно с примерами кода. 

Примеры кода, пожалуйста.

Автор: Win MK 32 15.5.2009, 18:22
Проблема давно решена. Спасибо вам за желание помочь разобраться. Но это было давно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)