Как отправить значение ввода с несколькими флажками в многоразовых формах php?

#php #forms #validation #checkbox

Вопрос:

Я использую «reusableforms.com» PHP-скрипт формы. Форма работает хорошо. Но я получил ошибку при значениях флажков с несколькими вводами.

Как я могу получить значения флажка с несколькими вводами?

HTML-код:

 lt;div class="form-box"gt;  lt;labelgt;Choose which of the following are most important to you:lt;/labelgt;  lt;div class="multi-select"gt;  lt;div class="custom-select"gt;  lt;input type="checkbox" id="hight-rating" value="High Rating" name="important" hiddengt;  lt;label for="hight-rating"gt;High Ratinglt;/labelgt;  lt;/divgt;  lt;div class="custom-select"gt;  lt;input type="checkbox" id="mobile-phone-app" value="Mobile phone app" name="important" hiddengt;  lt;label for="mobile-phone-app"gt;Mobile phone applt;/labelgt;  lt;/divgt;  lt;div class="custom-select"gt;  lt;input type="checkbox" id="vendor-management" value="Vendor management" name="important" hiddengt;  lt;label for="vendor-management"gt;Vendor managementlt;/labelgt;  lt;/divgt;  lt;/divgt; lt;/divgt;   

handler.php

 lt;?php  ini_set('display_errors', 1);  ini_set('display_startup_errors', 1);  error_reporting(E_ALL);   require_once './vendor/autoload.php';    use FormGuideHandlxFormHandler;     $pp = new FormHandler();     $validator = $pp-gt;getValidator();  $validator-gt;fields(['name','email', 'phone', 'address', 'property', 'following', 'units', 'date'])-gt;areRequired()-gt;maxLength(50);  $validator-gt;field('important[]')-gt;maxLength(5000);  $validator-gt;field('email')-gt;isEmail();      $pp-gt;sendEmailTo('xxx@gmail.com'); // ← Your email here    echo $pp-gt;process($_POST); ?gt;  

Спасибо.

Комментарии:

1. я) я думаю, что вы должны использовать имя «важно» как «важно[]» в html, чтобы получить несколько данных. ii) я не уверен в инструменте «ФормХандлер». Но максимальная длина применима для данных строкового типа, и там вы получаете тип массива. а также для проверки вы можете попробовать имя как «важный» или «важный[индекс]». ** я не уверен, какой инструмент вы используете для обработки формы. это просто моя мысль, когда я смотрю на код

2. Используйте важный[] в html, а также в обработчике форм

Ответ №1:

В соответствии с вашим вопросом вы не указываете флажки в виде массивов, которые вам понадобятся для:

 lt;input type="checkbox" id="hight-rating" value="High Rating" name="important[]" hiddengt;  

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

Ответ №2:

использование в html

 lt;input type="checkbox" id="mobile-phone-app" value="Mobile phone app" name="important[]" hiddengt;  

в php вы будете получать данные в массиве, поэтому вы можете использовать счетчик, а не максимальную длину

 $important = $_GET['important']; $count = count($important);  

Ответ №3:

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

 $("#reused_form").submit(function (e) {  e.preventDefault();  $form = $(this);   var formdata = new FormData(this);    var valuesArray = $('[name=important]:checked').map( function() {  return this.value;  }).get().join(", ");   formdata.append( 'important', valuesArray );   $.ajax({  type: "POST",  url: "form/handler.php",  data: formdata,  success: after_form_submitted,  dataType: "json",  processData: false,  contentType: false,  cache: false,  }); });