2013-09-12 3 views
0

Я уверен, что мне просто не хватает чего-то очень простого, потому что я сгорел от кодирования. Может кто-нибудь, пожалуйста, укажите, в чем проблема? При отправке формы электронной почты информация, но ни одна из переменных (например, имя, фамилия и т. Д.) Не включена в сообщение электронной почты.контактная форма, не проходящая переменные

Все, что я получаю это:

От:
Телефон: - Call Back:
Лучшее время для звонка:
Сообщение:

Если вы можете найти то, что проблема - Я буду очень благодарен.

Вот форма HTML:

<form action="mail.php" method="POST" id="main_form" onSubmit="this.reset();"> 
<p>First Name</p> <input type="text" name="firstname" size="93" style="width:475px; float:left;"><br /> 
<p>Last Name</p> <input type="text" name="lastname" size="93" style="width:475px; float:left;"><br /> 
<p>Email</p> <input type="text" name="email" size="93" style="width:475px; float:left;"><br /> 
<p>Confirm E-mail</p> <input type="text" name="confirmemail" size="93" style="width:475px; float:left;"><br /> 
<p>Contact Number<br /> 
<input type = "text" id = "Ph1" name="Ph1" size =" 3" maxlength = "3" onkeyup = "validate(this,2)">- 
<input type = "text" id = "Ph2" name="Ph2" size =" 3" maxlength = "3" onkeyup = "validate(this,3)">- 
<input type = "text" id = "Ph3" name="Ph3" size =" 4" maxlength = "4" onkeyup = "validate(this,3)"> 
</p> 
<script type = "text/javascript"> 
function validate(which,next) { 
var val = which.value; 
val = val.replace(/[^0-9]/g,""); // strip non-digits 
which.value = val; 
next = "Ph" + next; 
if (val.length == 3) { // field completed 
document.getElementById(next).focus() 
} 
} 
</script> 

<p>Request Phone Call:<br /> 
<span style="font-family:'Open Sans', serif; font-size:14px;">Yes:</span><input type="radio" value="Yes" name="call"> 
<span style="font-family:'Open Sans', serif; font-size:14px;">No:</span><input type="radio" value="No" name="call"><br /> 
</p> 
<p>Best time to contact:<br /> 
<span style="font-family:'Open Sans', serif; font-size:14px;">Morning:<input type="radio" value="Morning" name="calltime"> 
<span style="font-family:'Open Sans', serif; font-size:14px;">Afternoon:<input type="radio" value="Afternoon" name="calltime"> 
<span style="font-family:'Open Sans', serif; font-size:14px;">Evening:<input type="radio" value="Evening" name="calltime"><br /> 
</p> 
<p>Message</p><textarea name="message" rows="6" cols="67"></textarea><br /> 
<input class = "_submit"type="submit" value="SUBMIT" style="width: 128px; 
height: 36px; 
font-family: 'Pathway Gothic One', serif; 
font-size: 28px; 
border-radius: 0px; 
border-width: 0px; 
color: #FFF; 
background-color: #FFCA04; float:left; margin-top: 10px;"> 
</form> 

Вот mail.php

<?php 
$firstname = $_POST['firstname']; 
$lastname = $_POST['lastname']; 
$email = $_POST['email']; 
$confirmemail = $_POST['confirmemail']; 
$phone1 = $_POST['Ph1']; 
$phone2 = $_POST['Ph2']; 
$phone3 = $_POST['Ph3']; 
$call = $_POST['call']; 
$calltime = $_POST['calltime']; 
$message = $_POST['message']; 
$formcontent=" From: $firstname $lastname \n Phone: $phone1-$phone2-$phone3 \n Call Back: $call \n Best time to call: $calltime \n Message: $message"; 
$recipient = "[email protected]"; 
$subject = "YOU HAVE A MESSAGE FROM WEBSITE CONTACT PAGE"; 
$mailheader = "From: $email \r\n"; 
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!"); 
echo "Thank You!" . " -" . "<a href='form.html' style='text-decoration:none;color:#ff0099;'> Return Home</a>"; 
?> 
+1

onSubmit = "this.reset();" <<<<<<<<<<<<<< подумайте об этом –

ответ

1
onSubmit="this.reset();" 

Вы стереть все данные, когда начинается представление.

(Обработчики событий стреляют, прежде чем нормальное поведение события решает, чтобы поведение можно было отменить).

+0

Спасибо. Это сработало. Есть ли простой способ очистить форму после отправки? – rockandrollnerd

0

Попробуйте удалить "this.reset()" из атрибута формы в onSubmit:

<form action="mail.php" method="POST" id="main_form" onSubmit="this.reset();"> 

обработчики событий пожара, прежде чем принимать фактические представить действие. Если вы хотите что-то сделать в JS после отправки формы, взгляните на this stackoverlow post. В нем объясняется, как отправить форму и выполнить действия после этого.

+0

Спасибо. Это сработало. Есть ли простой способ очистить форму после отправки? – rockandrollnerd

+0

Я обновил свой ответ - теперь у него есть ссылка на объяснение, как очистить форму или как выполнить любую другую задачу в JS ПОСЛЕ отправки формы - проверьте ее – Kleskowy

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