Ребята, помогите пожалуйста. Уже все перерыл. Понимаю. что просто но не работает!
Проблема такая. Нужно отправить данные чекбокса (галочки которые выброл человек) на емэйл. С тегом radio получилось а вот с галками...Либо последний выбор приходит, либо ничего!
Вот php с обработчиком post:
$pattern = "#^[a-z0-9_-]+@[a-z0-9_-]+\.([a-z0-9]{1,6}\.)?[a-z]{2,6}$#i";
if($_POST){
$error = false;
foreach ($_POST as $key => $value) {
$value = trim($value);
if(array_key_exists($key, $fields) && empty($value)){
$_SESSION['res']['error'] .= "Вы не заполнили поле {$fields[$key]} <br />";
$error = true;
}
}
if(!empty($_POST['email'])){
if(!preg_match($pattern, $_POST['email'])){
$_SESSION['res']['error'] .= "Поле email не соответствует формату <br />";
$error = true;
}
}
if($_POST['captcha'] != $_SESSION['res_captcha']){
$_SESSION['res']['error'] .= "Дан неверный ответ на вопрос <br />";
$error = true;
}
if($_POST['confirm'] != 'on'){
$_SESSION['res']['error'] .= "Вы не подтвердили согласие на публикацию!";
$error = true;
}
if($error){
foreach ($_POST as $key => $value) {
$_SESSION['res'][$key] = trim($value);
}
}else{
foreach ($_POST as $key => $value) {
if(!array_key_exists($key, $all_fields)) continue;
$value = trim($value);
if(empty($value)) $value = "Поле не заполнено";
$body .= "{$all_fields[$key]}: \r\n{$value}\r\n\r\n";
}
$to = "admin@gmail.com";
$subject = "Заполнена форма на сайте";
$headers = "FROM: " .strtoupper($_SERVER['SERVER_NAME']). "<>\r\n";
$headers .= "Content-type:text/plain; charset=utf-8";
if(mail($to, $subject, $body, $headers)){
$_SESSION['res']['ok'] = "Спасибо, Ваш отзыв принят.";
}else{
$_SESSION['res']['error'] .= "Ошибка при отправке письма!";
}
}
header("Location: {$_SERVER['PHP_SELF']}");
exit;
}
$a = mt_rand(1, 10);
$b = mt_rand(1, 10);
$_SESSION['res_captcha'] = $a + $b;
И html
<p>
<fieldset id="shest" style="width: 200px;">
<legend><input type="checkbox"> Всё</legend>
<input type="checkbox" name="food" value="Завтрак" checked >Завтрак
<input type="checkbox" name="food" value="Обед" >Обед
<input type="checkbox" name="food" value="Ужин" >Ужин
</fieldset>
<script>
var main = document.querySelector('#shest legend [type="checkbox"]'),
all = document.querySelectorAll('#shest > [type="checkbox"]');
for(var i=0; i<all.length; i++) { // 1 и 2 пункт задачи
all[i].onclick = function() {
var allChecked = document.querySelectorAll('#shest > [type="checkbox"]:checked').length;
main.checked = allChecked == all.length;
main.indeterminate = allChecked > 0 && allChecked < all.length;
}
}
main.onclick = function() { // 3
for(var i=0; i<all.length; i++) {
all[i].checked = this.checked;
}
}
</script>
</p>
На скрипт не смотрите - это чтобы сразу всё выбрать(рабочий)
Спасибо!