Это мой код:
index.php
<form action="">
<input placeholder="Name" class="form" id="nome" type="text" required/>
<input placeholder="Mail" class="form" id="mail" type="email" required />
<input placeholder="Object" class="form" id="oggetto" type="text" required />
<textarea placeholder="Message" id="text" class="form"></textarea>
<input class="formBtn" type="submit" id="submit"/>
<input class="formBtn" type="reset" />
скрипт в index.php
<script>
$('#submit').click(function() {
var nameform = $('#name').val();
var mailform = $('#mail').val();
var objectform = $('#object').val();
var textform = $('#text').val();
var mailcomplete = 'Name='+nameform+'&Mail='+mailform+'&Object='+objectform+
'&Message='+textform;
$.ajax({
type: "POST",
url: 'php/mail.php',
data: mailcomplete,
success: function() {
alert("Well Done!");
}
});
});
mail.php
<?php
$name = $_POST['Name'];
$mail = $_POST['Mail'];
$object = $_POST['Object'];
$message = $_POST['Message'];
mail("mail@mail.it", $object, $message,
"From: $mail\r\n" .
"Reply-To: $mail\r\n" .
"X-Mailer: PHP/" . phpversion());
?>
С этим кодом я могу отправлять почту, если все поля тоже пустые.
Я бы добавил элемент управления для отправки почты, когда все поля соответствуют обязательным атрибутам.
Так много тебе! до свидания
Это произойдет потому, что при нажатии кнопки «Отправить» выполняется вызов ajax, чтобы предотвратить это. Воспользуйтесь событием «Отправить», касающимся формы в jquery, вы можете сделать это по своему усмотрению, используя следующий код.
Сначала добавьте идентификатор в форму, как показано ниже:
<form action="" id="formId">
<input placeholder="Name" name="Name" class="form" id="name" type="text" required/>
<input placeholder="Mail" name="Mail" class="form" id="mail" type="email" required />
<input placeholder="Object" name="Object" class="form" id="oggetto" type="text" required />
<textarea placeholder="Message" name="Message" id="text" class="form"></textarea>
<input class="formBtn" name="submit" type="submit" id="submit"/>
<input class="formBtn" name="reset" type="reset" />
</form>
Теперь для кода JQuery
$(document).on('submit','#formId',function(e){
// this will prevent form to submit
e.preventDefault();
// data need to send can be get with javascript serialize()
var data = $("#formId").serialize();
// now go for ajax call
$.ajax({
type: "POST",
url: 'php/mail.php',
data: data,
success: function() {
alert("Mail inviata correttamente!");
}
});
})
Других решений пока нет …