Проблем с контакт форма

k0kicha

Registered
Здравейте!

Защо следната форма не работи?

index.html
Код:
<form method='post' action='contact.php' id='forms'>
						<div class="form-group">
							<input name='name' type="text" class="form-control" id="name" required placeholder="Вашите имена">
						</div>
						<div class="form-group">
							<input name='email' type="email" class="form-control" id="email" required placeholder="Вашият email">
						</div>
						<div class="form-group select_group select_guest">
							<select name='numguest' class="form-control select_frm" id="numguest">
								 <option>Само аз</option>
								 <option value='1-човек'>01</option>
								 <option value='2-души'>02</option>
								 <option value='3-души'>03</option>
								 <option value='4-души'>04</option>
								 <option value='5-души'>05</option>
							</select>
						</div>
						<div class="form-group select_group select_attend">
						<select name='allevents' class="form-control selectpicker select_frm" id="allevents">
							 <option>Всички събития</option>
							 <option value='Мезето на кръстника'>Мезето на Кръстника</option>
							 <option value='Битката за булката'>Битката за булката</option>
							 <option value='Оцелелите в храма'>Оцелелите в храма</option>
							 <option value='Ритуала'>Ритуала за победата</option>
							 <option value='Съюза'>Съюза на Ники и Емо</option>
						</select>
						</div>
						<div class="form-group select_group">
						<select name="attending" class="form-control selectpicker select_frm" id="attending">
							 <option value='Да'>Да, ще присъствам</option>
							 <option value='Не'>Не. Съжалявам</option>
						</select>
						</div>
						<button type="submit" class="btn btn-default btn_attend" value='Send'>Изпрати</button>
					</form>

contact.php
Код:
<?php

// Blank message to start with so we can append to it.
$message = '';

// Check that name & email aren't empty.
if(empty($_POST['name']) || empty($_POST['email'])){
    die('Моля, уверете се, че email и Вашите имена са правилни.');
}

// Construct the message
$message .= <<<TEXT
    Name: {$_POST['name']}
    Email: {$_POST['email']}
    Number of Guest: {$_POST['numguest']}
    Events: {$_POST['allevents']}
    Attending: {$_POST['attending']}
TEXT;

// Email to send to
$to = 'kokicha@abv.bg';

// Email Subject
$subject = 'Съобщение от сайта';

// Name to show email from
$from = 'NikiEmo-Wedding';

// Domain to show the email from
$fromEmail = 'kokicha@abv.bg';

// Construct a header to send who the email is from
$header = 'From: ' . $from . '<' . $fromEmail . '>';

// Try sending the email
if(!mail($to, $subject, $message, $header)){
    die('Възникна грешка. Опитай отново.');
}else{
    die('Вашето потвърждение е изпратено успешно.');
}

site.js
Код:
	// Contact Form
	$('#forms').submit(function(e){
		// Stop the form actually posting
		e.preventDefault();

		// Send the request
		$.post('contact.php', {
			name: $('#name').val(),
			email: $('#email').val(),
			numguest: $('#numguest').val(),
			allevents: $('#allevents').val(),
			attending: $('#attending').val()
		}, function(d){
			console.log(d);
			// Here we handle the response from the script
			// We are just going to alert the result for now
			alert(d);
		});
	});
});
 
https://jsfiddle.net/u1eot9q6/

Код:
<script>
$(document).ready(function() {
            $(document).on('submit', '#form', function (e) {
                e.preventDefault();
                var form = $(this).serialize();
                $.ajax({
                    type: 'POST',
                    url: 'contact.php',
                    data: form
                }).done(function (response) {
                    alert(response);
                });
            });
        });
    </script>

Проблема ти бе в подаването на заявката.
 
Ще прощава колегата даката, но се включвам с едно предложение за ета-редукция в тази част от кода:

Код:
.done(function (response) {
                    alert(response);
                })

е еквивалентно на:

Код:
.done(alert)

:lol: :lol:

Отделно, $(document).on('submit', 'form'.... няма нужда да се слага в $document.ready(), защото bind-ва върху целия документ и няма нужда в момента на извикването да са заредени елемнетите на страницата (в случая, формата).
 
anonimen каза:
Ще прощава колегата даката, но се включвам с едно предложение за ета-редукция в тази част от кода:

Код:
.done(function (response) {
                    alert(response);
                })

е еквивалентно на:

Код:
.done(alert)

:lol: :lol:

Отделно, $(document).on('submit', 'form'.... няма нужда да се слага в $document.ready(), защото bind-ва върху целия документ и няма нужда в момента на извикването да са заредени елемнетите на страницата (в случая, формата).
Че е така, така е ама де да знам какво друго му е в главата! :D :D :D
 

Горе