@nikita0509

Как сделать валидацию инпутов?

Сейчас при заполнении формы приходит два письма, одно на почту указанную в форме, другое на нашу почту.
Подскажите как сделать валидацию, хотя бы от пустых значений? (в html не получается)

в index.php код такой:

function sendmail(t){
 var name,phone,mail,type,price,item, catalog;
 type=t;
 if (type==1)
 {
 name = $('.popupcatalog .name').val();
 phone = $('.popupcatalog .phone').val();
 mail = $('.popupcatalog .mail').val();
 catalog = $('.popupcatalog .catalog').val();
 }
 if (type==2) {
 name = $('.pform .name').val();
 phone = $('.pform .phn1').val()+$('.pform .phn2').val()+$('.pform .phn3').val();
 price = $('#productpage .right .top .pprice').html();
 item = $('#productpage .right .top .ptitle').html();
 }
 if (type==3) {
 name = $('.popupcallback .name').val();
 phone = $('.popupcallback .phone').val();
 }
 
 $.post(
			"<?php echo get_template_directory_uri(); ?>/send.php", 
			{
			name: name,
      		phone: phone,
			mail: mail,
			price: price,
			item: item,
			type: type,
			catalog: catalog,
			},
			function(data) {
			if (data==1) {
                $('.popupout').fadeOut();
				$('#message').fadeIn();	
			}
			
			});
};


в send.php такой :
<?php
$sendto = "24@yandex.ru";

$name = $_POST['name'];
$phone = $_POST['phone'];
$mail = $_POST['mail'];
$price = $_POST['price'];
$item = $_POST['item'];
$catalog = $_POST['catalog'];
$tp = $_POST['type'];



if ($tp==1) {
$subject  = "Каталог";
}
if ($tp==2) {
$subject  = "Консультация";
}
if ($tp==3) {
$subject  = "Обратный звонок";
}

$msg  = " ";
$msg .= "Ваше имя: ".$name."<br/>";
$msg .= "Ваш телефон: ".$phone."<br/>";
if ($tp==1) {
$msg .= "Ваша ссылка:" . $catalog;
}
if ($tp==2) {
$msg .= "Товар: ".$item."<br/>";
$msg .= "Цена: ".$price."<br/>";
}

$headers  = "Content-type: text/html; charset=utf-8 \r\n"; 
$headers .= "From: элитмебель24 <birthday@example.com>\r\n"; 
$headers .= "Bcc: birthday@example.com\r\n";

if ($tp==1) {
mail($mail, $subject, $msg, $headers);
}
if (@mail($sendto, $subject, $msg, $headers)) {echo 1;}

?>
  • Вопрос задан
  • 238 просмотров
Решения вопроса 1
@arab789
Проверяй перед отправкой поста полученные данные. Допустим if( name.length>0 && phone.length>0 ... и т.д. ){ отправка поста }else{ jq пиши в блок error что не все поля заполнены }. Можно так же отдельно каждое проверять и по нему ошибки выводить, еще не было бы проверить, что ввел пользователь, если не в js, то на сервере обязательно, а то вводят много чего хорошего...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
tachini
@tachini
Программист
<input type = 'text' required>
required - указывает что поле обязательное для ввода
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SummerWeb Ярославль
от 120 000 до 180 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $