Я создаю форму с использованием 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"); }