X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Отправка формы на почту с checkbox
loganleito
loganleito
Topic Starter сообщение 18.6.2014, 2:08; Ответить: loganleito
Сообщение #1


Доброго времени суток!
Ребята спасайте)
Понимаю что просто,но не могу понять в чём ошибка.
Отправляю функцию радио на почту- всё хорошо.
А вот checkbox приходит только последний при выборе.
Либо если присвоить одинаковое имя или [] поставить,то в ошибки выхожу!
Помогите пожалуйста!
Спасибо!:rolleyes:

Вот код:
[PHP]<?php
session_start();
$countries = array("Россия", "Украина", "Австралия", ........"Япония");
sort($countries);

$fields = array("lastname" => "Название хора (как должно звучать со сцены и вдипломе)", "firstname" => "Дирижер хора (Ф.И.О., включая звания, если есть)", "middlename" => "Хормейстер (Ф.И.О., включая звания)", "email" => "Email", "comment" => "КОММЕНТАРИИ, ВОПРОСЫ К ОРГАНИЗАТОРАМ");
$all_fields = array("lastname" => "Название хора (как должно звучать со сцены и вдипломе)",
"firstname" => "Дирижер хора (Ф.И.О., включая звания, если есть)",
"middlename" => "Хормейстер (Ф.И.О., включая звания)",
"emailAlt" => "Концертмейстер (Ф.И.О., включая звания)",

"country" => "Страна",
"city" => "Город",
"index" => "Индекс",
"address" => "Почтовый адрес",
"text" => "Контактное лицо",
"email" => "Email",
"phone" => "Телефон для связи",
"skype" => "Skype (желательно)",
"fax" => "Факс (с кодом города)",
"web" => "Web-сайт хора",
"category" => "Категория",
"option" => "Проживание",
"transportation" => "Вид транспорта",
"concert" => "Мы хотим принять участие",
"tour" => "Мы хотим заказать экскурсию",

"checkbox1" => "Завтрак",
"checkbox2" => "Обед",
"checkbox3" => "Ужин",

"with_date" => "Дата прибытия с",
"by_date" => "Дата прибытия по",
"with_date1" => "Дата оправления с",
"by_date1" => "Дата оправления по",
"singers" => "Певцов",
"accompanying" => "Сопровождающих",
"only" => "Всего",
"vehicle" => "Тест",

"speech" => "ОБЯЗАТЕЛЬНОЕ ПРОИЗВЕДЕНИЕ",
"repertoire" => "Исполняемый репертуар с указанием хронометража каждого произведения",
"tool" => "Нужен ли инструмент для выступления",

"comment" => "КОММЕНТАРИИ, ВОПРОСЫ К ОРГАНИЗАТОРАМ");





$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 .= "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;

?>[/PHP]

<input type="checkbox" name="breakfast" value="Завтрак" checked >Завтрак
<input type="checkbox" name="lunch" value="Обед" >Обед
<input type="checkbox" name="dinner" value="Ужин" >Ужин
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
bystar
bystar
сообщение 21.6.2014, 13:56; Ответить: bystar
Сообщение #2


Особенность чекбокса в том, что если он не выбран то ничего не уходит на сервер.

Проверять выбран ли какой то чекбокс нужно примерно так:

проверяем был ли выбран завтрак:

[PHP]
if(isset($_POST['breakfast']))
{
echo 'выбран завтрак';
}
else
{
echo 'Завтрак не выбран';
}
[/PHP]

Надеюсь так понятнее.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыРассылка ваших сообщений в контакт формы!
3 dizaynmaks 1709 18.4.2022, 9:04
автор: dizaynmaks
Открытая тема (нет новых ответов) Отправка смс на телефоне через web-сайт
0 Sepembra 956 21.8.2018, 16:13
автор: Sepembra
Открытая тема (нет новых ответов) Делаю простые формы заказов с оплатой
прочитал-оформил-оплатил
3 Taylor 2825 13.6.2018, 0:34
автор: Taylor
Открытая тема (нет новых ответов) Доработка формы вывода фильтра товара и формы заказа. Webasyst ShopScript7
0 rmoto 2809 12.12.2017, 1:13
автор: -Arturrfmoto-
Открытая тема (нет новых ответов) Ищу знатока MODX и контактных форм (отправка сообщений с сайта)
0 by_roXe 1844 31.5.2017, 14:35
автор: by_roXe


 



RSS Текстовая версия Сейчас: 25.4.2024, 11:18
Дизайн