Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как передать состояние checkbox'ов на другую страницу (https://javascript.ru/forum/misc/69865-kak-peredat-sostoyanie-checkbox%27ov-na-druguyu-stranicu.html)

SkyRewir 24.07.2017 08:20

Как передать состояние checkbox'ов на другую страницу
 
Добрый день!
Подскажите пожалуйста, как передать состояние checkbox'ов на другую страницу, файл index.php
<!DOCTYPE html>
<html>
	<head>
		<title></title>
		<style type="text/css">
			span {
				border : 1px solid;
				display: inline-block;
				text-align: center;
			}
			form {
				margin: 5px;
			}
		</style>
	</head>
	<body>
		<span>
			<p>Форма 1</p>
			<form method="post" action="/obr_1">
				<input type="checkbox" name="a1"><label>Вариант 1</label><br/>
				<input type="checkbox" name="a2"><label>Вариант 2</label><br/>
				<input type="checkbox" name="a3"><label>Вариант 3</label><br/>
				<button type="submit">Отправить</button>
			</form>
		</span>
		<span>
			<p>Форма 2</p>
			<form method="post" action="/obr_2">
				<input type="checkbox" name="b1"><label>Вариант 1</label><br/>
				<input type="checkbox" name="b2"><label>Вариант 2</label><br/>
				<input type="checkbox" name="b3"><label>Вариант 3</label><br/>
				<button type="submit">Отправить</button>
			</form>
		</span>
		<span>
			<p>Форма 3</p>
			<form method="post" action="/obr_3">
				<input type="checkbox" name="c1"><label>Вариант 1</label><br/>
				<input type="checkbox" name="c2"><label>Вариант 2</label><br/>
				<input type="checkbox" name="c3"><label>Вариант 3</label><br/>
				<button type="submit">Отправить</button>
			</form>
		</span>
	</body>
</html>

Нужно чтобы пользователь при нажатии на кнопку формы переходил на страничку и видел пункты, которые он выбрал и мог дополнительно выбрать что-то ещё, после ввести имя, телефон, емайл и все эти данные попали в обработчик
Схема действия (выбрать пункты на основной странице->Посмотреть что выбрано, выбрать что-то дополнительно, произвести расчет-> Отправить все в обработчик
Спасибо!

laimas 24.07.2017 08:42

Цитата:

Сообщение от SkyRewir
как передать состояние checkbox'ов на другую страницу

Отправление формы по указанному в ней адресу разве не является такой передачей?

SkyRewir 24.07.2017 08:57

Является, но здесь взаимодействуют три страницы.
Первая основная, где можно выбрать услуги.
Вторая промежуточная, просмотреть услуги которые выбраны, возможность дополнительно отметить ещё услугу если нужно, увидеть цену
Третья обработчик, обработать данные полученные со второй страницы, перенаправить на страницу благодарности

laimas 24.07.2017 09:09

Цитата:

Сообщение от SkyRewir
здесь взаимодействуют три страницы.

Вот это то и плохо, когда на три флажка отдается целая страница, хотя 100% можно все эти три формы принимать и обслуживать одним скриптом.
Более того, если уж выбор последовательный, то почему пользователю доступны сразу три формы, не логичнее ли их отдавать в таком случае по одной, по этапам?

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

laimas 24.07.2017 09:31

Сеть отвалилась, хорошо, что закончено получилось. )

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

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

SkyRewir 24.07.2017 09:32

Цитата:

Сообщение от laimas (Сообщение 459412)
Более того, если уж выбор последовательный, то почему пользователю доступны сразу три формы, не логичнее ли их отдавать в таком случае по одной, по этапам?

Каждая форма отвечает за разную услугу
Первая форма (Бесплатная регистрация ТОО).
Вторая форма checkbox'ы (Выбор услуг по отдельности, заказ печати, визы, ходатайства и тд.).
Третья форма (Выбор пакета услуг + выбор услуг которые не входят в этот пакет checkbox'ы виза, ходатайство, печать).
Для каждой из форм разный обработчик, стоит интеграция с crm системой по api, они попадают в разные воронки продаж и с ними выполняются несвязанные между собой действия, поэтому возможности запихать все это в один обработчик не получится.
Поэтому сделано три разных обработчика под три формы.

laimas 24.07.2017 09:44

Цитата:

Сообщение от SkyRewir
Первая форма (Бесплатная регистрация ТОО).

По коду не видно, чтобы это была регистрация. Есть три похожих формы, если это только не для упрощения ради вопроса.

Цитата:

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

Ерунда какая, форма, это параметры, если каждый из обработчиков ожидает свои, то уже по параметрам можно знать какой обработчик запрашивается, мало того, параметр-идентификатор можно и явно указать.

Цитата:

Сообщение от SkyRewir
стоит интеграция с crm системой по api

Это другое дело, если это предписано, тогда может быть.

Но не понятно, почему сразу три формы вывалены на страницу, а что если я сразу отправлю третью минуя две первых? Нет в этом логики.

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

SkyRewir 24.07.2017 10:16

Цитата:

Сообщение от laimas (Сообщение 459415)
По коду не видно, чтобы это была регистрация. Есть три похожих формы, если это только не для упрощения ради вопроса.

Да этот код ради упрощения вопроса
Цитата:

Сообщение от laimas (Сообщение 459415)
Но не понятно, почему сразу три формы вывалены на страницу, а что если я сразу отправлю третью минуя две первых? Нет в этом логики.

Форма уйдет на третью доп страницу, где будут видны заказанные услуги(список из checkbox'ов с возможностью до заказать услуги из этой отправленной формы),цена за услуги и нужно ввести имя, телефон, почту, а затем все уходит третий обработчик, минуя обработчик первой и второй формы. Так как услуги в трех формах абсолютно разные
Вот так выглядят формы на главной странице
https://drive.google.com/open?id=0Bw...k1sNWNHV1RYX1U

laimas 24.07.2017 10:32

Если "Дальше", значит сначала первая, затем вторая и только потом третья, но никак не все сразу, не так ли?

Я не знаю как взаимодействуют между собой эти страницы, если поле обработки какой-то формы сервер перенаправляет на следующую страницу или страницу "источник", то

header('utl?'.http_build_query($form));


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

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


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