За последние 24 часа нас посетили 22942 программиста и 1263 робота. Сейчас ищут 755 программистов ...

Как отправить с формой только один инпут?

Тема в разделе "HTML и CSS", создана пользователем Атм_Евгений, 11 май 2020.

  1. Атм_Евгений

    Атм_Евгений Активный пользователь

    С нами с:
    21 июл 2017
    Сообщения:
    206
    Симпатии:
    5
    Всем привет!

    Ребята, подскажите пожалуйста:

    У меня форма, в ней десять инпутов и одна кнопка отправить. Как сделать так, чтобы при отправке улетали не все инпуты, а только те, которые, например, отмечены чеком или радиокнопкой? И все это нужно без JS? только на хтмл.

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

    За ранее благодарю за ответ!
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    На чистом html никак.
    А я м вам js не угодил?
    Ну или обрабатывайте на бэке, пусть хоть 100 инпутов шлют
     
  3. Атм_Евгений

    Атм_Евгений Активный пользователь

    С нами с:
    21 июл 2017
    Сообщения:
    206
    Симпатии:
    5
    HTML это же яп, должен же хоть что то уметь.)
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    Это вы загнули. Прочтите Википедию, html это язык разметки, а не программирования
     
  5. Атм_Евгений

    Атм_Евгений Активный пользователь

    С нами с:
    21 июл 2017
    Сообщения:
    206
    Симпатии:
    5
    Не, не загнул. Разобрался.
    Вот этот код html (без js) отправляет только отмеченные инпуты. Инпутов можно добавить сколько хочешь, только у каждой тройки (два чека и один инпут) меняем порядковый номер (чтобы не повторялись). Отправку в форме отмечаем чеком, также отмеченным можно запретить отправку в форме, щелкать можно хоть сколько раз:

    Код (Text):
    1.  
    2. <form name="redactor" action="format.php" method="post">
    3.  
    4. <input type="checkbox" name="take_1" onClick="this.form.name_1.disabled=0;this.form.take_1.disabled=1;this.form.take_1.hidden=1;this.form.check_1.hidden=0;this.form.check_1.checked=1">
    5. <input type="checkbox" name="check_1" onClick="this.form.name_1.disabled=1;this.form.check_1.hidden=1;this.form.take_1.disabled=0;this.form.take_1.hidden=0;this.form.take_1.checked=0" hidden>
    6. <input type="text" size="40" name="name_1" disabled><br>
    7.  
    8. <input type="checkbox" name="take_2" onClick="this.form.name_2.disabled=0;this.form.take_2.disabled=1;this.form.take_2.hidden=1;this.form.check_2.hidden=0;this.form.check_2.checked=1">
    9. <input type="checkbox" name="check_2" onClick="this.form.name_2.disabled=1;this.form.check_2.hidden=1;this.form.take_2.disabled=0;this.form.take_2.hidden=0;this.form.take_2.checked=0" hidden>
    10. <input type="text" size="40" name="name_2" disabled><br>
    11.  
    12. <input type="submit" value="Отправить"><br>
    13.  
    14. </form>
     
  6. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    Родной, onClick это js событие, и то что потом указано тоже функции js
     
  7. Атм_Евгений

    Атм_Евгений Активный пользователь

    С нами с:
    21 июл 2017
    Сообщения:
    206
    Симпатии:
    5
    Т.е. если отключить js работать не будет?
     
  8. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    Отключи и проверь ))
     
  9. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    @Атм_Евгений Можно применить обработку на стороне php. То есть все отправляется на сервер, а там уже по галочкам смотри что обрабатывать, а что нет.
     
  10. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    Дык так и было сказано
     
  11. Атм_Евгений

    Атм_Евгений Активный пользователь

    С нами с:
    21 июл 2017
    Сообщения:
    206
    Симпатии:
    5
    Да, действительно не работает!

    А как проверить, включена ли поддержка js, и, если отключена, выскакивало предупреждение?
     
  12. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    Код (Javascript):
    1. <script type="text/javascript">
    2.   document.write("У Вас включён JavaScript!");
    3. </script>
    4. <noscript><span>У Вас отключён JavaScript...</span></noscript>
    но только в существующем документе - никаких всплывающих окон, alert-ов и прочего быть не может, так как js отключен
     
  13. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    @Атм_Евгений
    HTML:
    1. #take_1:checked + #name_1{
    2.     display:none;
    3. }
    4. #take_2:checked + #name_2{
    5.     display:none;
    6. }
    7. <form name="redactor" action="format.php" method="post">
    8. <label>скрыть</label>
    9. <input type="checkbox" id="take_1" name="take[0]">
    10. <input type="text" size="40" id="name_1" name="name[0]"><br>
    11.  
    12. <label>скрыть</label>
    13. <input type="checkbox" id="take_2" name="take[1]">
    14. <input type="text" size="40" id="name_2" name="name[1]"><br><br>
    15. <input type="submit" value="Отправить"><br>
    16. </form>

    format.php
    PHP:
    1. <?php
    2.  
    3. if( isset( $_POST['take'], $_POST['name'] ) )
    4. {
    5.     $take = $_POST['take'];
    6.  
    7.     foreach( $take as $key => $val )
    8.     {
    9.         if( isset( $_POST['name'][ $key ] ) )
    10.         {
    11.             unset( $_POST['name'][ $key ] );
    12.         }
    13.     }
    14.  
    15.     unset( $_POST['take'] );
    16. }
    17.  
    18. print_r( $_POST );
     
    #13 Artur_hopf, 12 май 2020
    Последнее редактирование: 12 май 2020
  14. Атм_Евгений

    Атм_Евгений Активный пользователь

    С нами с:
    21 июл 2017
    Сообщения:
    206
    Симпатии:
    5
    Всем спасибо! Буду пробовать.
     
    denis01 нравится это.