2015-06-16 2 views
0

Я пытаюсь отправить электронное письмо при нажатии кнопки html, а затем перенаправить на страницу подтверждения html. Весь мой код находится в одном файле php, за исключением страницы подтверждения. Он перенаправляет без проблем, просто не отправляет электронную почту при нажатии кнопки. Он работал в один момент, но он отправил электронное письмо сразу после загрузки страницы. Я искал в Интернет в течение нескольких дней, и вот что я в настоящее время пытаюсь:Отправить PHP-почту на html-кнопке с помощью JavaScript onClick, затем перенаправить на новую страницу html

<form action="confirm.html" method="post" name= "confirm"> 
<?php 

echo('<input type="button" value="Submit" onclick="this.form.submit();">'); 

?> 
</form> 

<?php 

$to="[email protected]"; 
$subject= "New Application"; 
$message= "Name: ".$Name; 
$headers= ""; 
mail($to, $subject, $message, $headers); 

echo "<body onload=\"self.close();\">"; 


?> 
+0

'' тег под '

'? Почему 'echo''' ''? Там нет PHP. Возможно, следует использовать AJAX. Просто сделайте почтовую часть с PHP на обратной стороне. С чего начать? Изучите HTML, CSS, JavaScript и PHP. – PHPglue

+0

Вы повторяете тег открытия тела после вашей формы? Итак, ваша форма находится за пределами тега тела? Нечетный способ сделать веб-страницу ... –

+0

@PHPglue Спасибо, это именно то, что я пытаюсь сделать! – Mark

ответ

0

Я пытаюсь отправить по электронной почте, когда кнопка HTML будет нажата, то перенаправление на страницу подтверждения HTML.

Приведенный выше код отправит электронное письмо сразу после загрузки страницы. Если вы хотите отправить электронное письмо при отправке формы, вам необходимо будет обернуть свой код электронной почты в блок после проверки, отправьте заголовок location для перенаправления.

Кроме того, необходимо некоторое именованный элемент со значением включить в пост, например:

<input type="button" name="submit" value="Submit" /> 

Затем в PHP вы можете использовать

<?php 
if (isset($_POST['submit'])) { 
    // Your email() code 

    // Redirect to another page 
    header("Location: http://example.com/confirmation.php"); 
    die(); 
} else { 
    // echo/include your form here 

} 

Обязательно поставить этот код на верхняя часть вашей страницы PHP до того, как будет написан любой HTML-код, иначе header() будет работать неправильно.

+0

Спасибо! Сейчас я работаю над этим. Должен ли я повторять вход или избавляться от него? – Mark

+0

Некоторые люди завершают эхо-форму формы в 'if (! Isset ($ _ POST ['confirm'])) {...}' блоке, чтобы отображать его только при загрузке начальной страницы. – Drakes

+0

Хорошо, я поставил код, который вы дали вместе с почтовым кодом внутри оператора if на самом верху. Как узнать, как выполнить код электронной почты при нажатии кнопки? Я что-то упускаю? В настоящее время единственным именем тега, которое у меня есть с «confirm», является следующее: – Mark

Смежные вопросы