@Andrew_Holmes

HTML: как осуществить отправку только выбранных элементов формы?

Здравствуйте!

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

<form action="program" method="post">
 <fieldset>
 	<input name="SelectType" type="radio" value="0">Группа 1<br>
 	<input name="Field1" size="8" maxlength="8" type="text" >Поле 1 <br>
 	<input name="Field2" size="8" maxlength="8" type="text" >Поле 2 <br>
 </fieldset>
 
 <fieldset>
 	<input name="SelectType" type="radio" value="1">Группа 2<br>
 	<input name="Field3" size="8" maxlength="8"  type="text" >Поле 3 <br>
 	<input name="Field4" size="8" maxlength="8"  type="text" >Поле 4 <br>
 </fieldset> 
</form>


В такой ситуации на сервер в форме передадутся заполненные параметры, допустим это Field3 и Field4. Вместе с этим, передадутся пустые Field1 и Field2.

Есть ли какие-нибудь способы отменить их (Field1 и Field2) отправку? Знаю, что можно через атрибут disable, но этот вариант не подходит, т.к. поля должны оставаться доступными для ввода данных.

Или не стоит насчет этого заморачиваться?
  • Вопрос задан
  • 2606 просмотров
Пригласить эксперта
Ответы на вопрос 2
Я бы не заморачивался.
Но если очень хочется, то можно.
<form action="program" method="post">
 <fieldset>
   <input name="SelectType" type="radio" value="0">Группа 1<br>
   <input name="Group_1[Field1]" size="8" maxlength="8" type="text" >Поле 1 <br>
   <input name="Group_1[Field2]" size="8" maxlength="8" type="text" >Поле 2 <br>
 </fieldset>
 
 <fieldset>
   <input name="SelectType" type="radio" value="1">Группа 2<br>
   <input name="Group_2[Field3]" size="8" maxlength="8"  type="text" >Поле 3 <br>
   <input name="Group_2[Field4]" size="8" maxlength="8"  type="text" >Поле 4 <br>
 </fieldset> 
</form>


На сервере просто очистить ненужную группу:
unset($_POST["SelectType"] == 1 ? $_POST["Group_1"] : $_POST["Group_2"]);
Ответ написан
Комментировать
ONEGiN
@ONEGiN
Лучше не заморачиваться с зачистками, потом не словить баг.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы