Установите флажок, если он установлен

Я создаю форму с использованием HTML с JQuery mobile, чтобы форма могла использоваться на мобильных устройствах.

У меня есть форма экспорта в CSV по электронной почте. Однако запись в CSV-файл не возникает, если флажки не отмечены.

Могу ли я использовать функции в jQuery, чтобы вытащить значения из отмеченных флажков, используя значения из метки, и пометить необработанные поля как Null или как Space чтобы при импорте их в Excel он заметил, что значения не отмечены ?

 <label for="question4" class="input"> 4. What language (s) are you currently using? </label> <fieldset data-role="controlgroup"> <legend>Multi select:</legend> <input type="checkbox" name="checkbox-1" id="checkbox-1" class="custom" value="english"/> <label for="checkbox-1"> English</label> <input type="checkbox" name="checkbox-2" id="checkbox-2" class="custom" /> <label for="checkbox-2">French</label> <input type="checkbox" name="checkbox-3" id="checkbox-3" class="custom" /> <label for="checkbox-3">Spanish</label> <input type="checkbox" name="checkbox-4" id="checkbox-4" class="custom" /> <label for="checkbox-4">Brazilian Portuguese</label> <input type="checkbox" name="checkbox-5" id="checkbox-5" class="custom" /> <label for="checkbox-5">Italian</label> <input type="checkbox" name="checkbox-6" id="checkbox-6" class="custom" /> <label for="checkbox-6">German</label> <input type="checkbox" name="checkbox-7" id="checkbox-7" class="custom" /> <label for="checkbox-7">Japanese</label> </fieldset> </br> 

если в JQuery нет способа сделать что-то в PHP? Поскольку я использую PHP для заполнения CSV-файла.

Это будет какая-то форма заявления if, которая гласит:

 if checkbox = yes then pull value from <label> 

Измените свой HTML-код и укажите атрибут name для всех своих флажков, например:

 <form action="" method="post"> <label for="question4" class="input"> 4. What language (s) are you currently using? </label> <fieldset data-role="controlgroup"> <legend>Multi select:</legend> <input type="checkbox" name="checkbox[]" id="checkbox-1" class="custom" value="english"/> <label for="checkbox-1"> English</label> <input type="checkbox" name="checkbox[]" id="checkbox-2" class="custom" /> <label for="checkbox-2">French</label> <input type="checkbox" name="checkbox[]" id="checkbox-3" class="custom" /> <label for="checkbox-3">Spanish</label> <input type="checkbox" name="checkbox[]" id="checkbox-4" class="custom" /> <label for="checkbox-4">Brazilian Portuguese</label> <input type="checkbox" name="checkbox[]" id="checkbox-5" class="custom" /> <label for="checkbox-5">Italian</label> <input type="checkbox" name="checkbox[]" id="checkbox-6" class="custom" /> <label for="checkbox-6">German</label> <input type="checkbox" name="checkbox[]" id="checkbox-7" class="custom" /> <label for="checkbox-7">Japanese</label> </fieldset> </br> <input type="submit" name="submit"> </form> 

Как только форма будет отправлена, атрибуты имени будут переданы как массив, и они будут доступны с использованием той же переменной. Теперь вы можете использовать isset() чтобы проверить, был ли установлен определенный элемент:

 if(isset($_POST['checkbox'])) { print_r($_POST); //print all checked elements } 

Если вы хотите получить количество отмеченных флажков, вы можете использовать count() :

 $number = count($_POST['checkbox']); 

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

Надеюсь это поможет!

  foreach($_POST['checkbox'] as $value) { echo 'checked: '.$value.''; } 

Внимательно просмотрите этот ответ, чтобы проверить, установлен ли флажок.

Как проверить, установлен ли флажок в jQuery?

Но в основном вы хотите сделать что-то вроде ниже, чтобы проверить его значение:

 if ($("#element").is(":checked")) { alert("I'm checked"); }