2013-05-18 2 views
0

jQuery를 사용하여 유효성이 검증 된 문의 양식이 있습니다.PHP/jQuery 문의 양식 보내지 않음

jQuery의 문제는 다른 질문에서 해결되었습니다.

그러나 유효성 검사를 수행하고 HTML 양식 및 PHP로 전송하는 독립 실행 형 PHP 파일로도 작업 할 수있는 양식을 얻을 수 없습니다.

오류는 없습니다. 코드의 메시지가 아니라 제출을 누르면 페이지가 빈 페이지로 이동합니다. 여기

는 코드입니다 - 나는 그것이 매우 간단 뭔가 느낌이! :

<!DOCTYPE HTML> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<?php 
if (isset($_POST['submit'])){ 
} 
else { 
?> 

<meta charset="utf-8" /> 

<link href='http://fonts.googleapis.com/css?family=PT+Sans+Narrow' rel='stylesheet' type='text/css'> 
<link href='http://fonts.googleapis.com/css?family=Droid+Sans' rel='stylesheet' type='text/css'> 
<link rel="stylesheet" href="**REMOVED**/style.css"> 


<script type="text/javascript"> 
jQuery.noConflict(); 
jQuery(document).ready(function($) { 


function isInt(n) { 
return typeof n === 'number' && n % 1 == 0; 
} 

// Form validation 
$(".darkBtn").click(function(e) { 
e.preventDefault(); 
var email_check = /^[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,6}$/i; 
var email = $("form.form_contact .email").val(); 

var zipCheck = /[A-Z]{1,2}[0-9R][0-9A-Z]? [0-9][ABD-HJLNP-UW-Z]{2}/i; 
var zip = $("form.form_contact .zipcode").val(); 

var phoneCheck = /^\d+$/; 
var phone = jQuery("#contact_form .phone").val(); 
console.log(phone); 

var error = ""; 

if(!email_check.test(email)) 
{ 
error = "Please give a valid email address." 

} 

if(!zipCheck.test(zip)) 
{ 
error = "Please give a valid postcode."; 
} 

if(!phoneCheck.test(phone) || phone.length != 11) 
{ 
error = "Please give a valid phone number."; 
} 


// No error ? -> Submit 
if(error == "") 
{ 
$(".form_error").hide(); 
$("form#contact_form").submit(); 
} else { 
$(".form_error").empty().text(error); 
$(".form_error").show(); 
} 
}); 
}); 


</script> 
</head> 
<body> 
<div class="menu_contact"> 
<h3>Contact Us</h3> 
<hr /> 
<form method="POST" class="form_contact" id="contact_form"> 
<label>Title:</label> 
<select class="input" name="title"> 
<option value="no">Please select</option> 
<option value="Mr">Mr</option> 
<option value="Mrs">Mrs</option> 
<option value="Miss">Miss</option> 
<option value="Ms">Ms</option> 
</select> 
<label>Contact Number:</label> 
<input type="text" class="input phone" placeholder="Your number" name="number"> 
<label>First name:</label> 
<input type="text" class="input" placeholder="John" name="fname"/> 
<label>Surname:</label> 
<input type="text" class="input" placeholder="Doe" name="sname"/> 
<label>Email:</label> 
<input type="email" class="input email" placeholder="[email protected]" name="email"/> 
<label>Postcode:</label> 
<input type="text" class="input zipcode" placeholder="CW3 9SS" name="post"/> 
<label>Date of birth:</label> 
<select class="input dateDay" name="day"> 
<option>Day</option> 
<option>1</option> 
<option>2</option> 
<option>3</option> 
<option>4</option> 
<option>5</option> 
<option>6</option> 
<option>7</option> 
<option>8</option> 
<option>9</option> 
<option>10</option> 
<option>11</option> 
<option>12</option> 
<option>13</option> 
<option>14</option> 
<option>15</option> 
<option>16</option> 
<option>17</option> 
<option>18</option> 
<option>19</option> 
<option>20</option> 
<option>21</option> 
<option>22</option> 
<option>23</option> 
<option>24</option> 
<option>25</option> 
<option>26</option> 
<option>27</option> 
<option>28</option> 
<option>29</option> 
<option>30</option> 
<option>31</option> 
</select> 
<select class="input dateMonth" name="month"> 
<option>Month</option> 
<option>January</option> 
<option>February</option> 
<option>March</option> 
<option>April</option> 
<option>May</option> 
<option>June</option> 
<option>July</option> 
<option>August</option> 
<option>September</option> 
<option>October</option> 
<option>November</option> 
<option>December</option> 
</select> 
<select class="input dateYear" name="year"> 
<option>Year</option> 
<option value="1996">1996</option> 
<option value="1995">1995</option> 
<option value="1994">1994</option> 
<option value="1993">1993</option> 
<option value="1992">1992</option> 
<option value="1991">1991</option> 
<option value="1990">1990</option> 
<option value="1989">1989</option> 
<option value="1988">1988</option> 
<option value="1987">1987</option> 
<option value="1986">1986</option> 
<option value="1985">1985</option> 
<option value="1984">1984</option> 
<option value="1983">1983</option> 
<option value="1982">1982</option> 
<option value="1981">1981</option> 
<option value="1980">1980</option> 
<option value="1979">1979</option> 
<option value="1978">1978</option> 
<option value="1977">1977</option> 
<option value="1976">1976</option> 
<option value="1975">1975</option> 
<option value="1974">1974</option> 
<option value="1973">1973</option> 
<option value="1972">1972</option> 
<option value="1971">1971</option> 
<option value="1970">1970</option> 
<option value="1969">1969</option> 
<option value="1968">1968</option> 
<option value="1967">1967</option> 
<option value="1966">1966</option> 
<option value="1965">1965</option> 
<option value="1964">1964</option> 
<option value="1963">1963</option> 
<option value="1962">1962</option> 
<option value="1961">1961</option> 
<option value="1960">1960</option> 
<option value="1959">1959</option> 
<option value="1958">1958</option> 
<option value="1957">1957</option> 
<option value="1956">1956</option> 
<option value="1955">1955</option> 
<option value="1954">1954</option> 
<option value="1953">1953</option> 
<option value="1952">1952</option> 
<option value="1951">1951</option> 
<option value="1950">1950</option> 
<option value="1949">1949</option> 
<option value="1948">1948</option> 
<option value="1947">1947</option> 
<option value="1946">1946</option> 
<option value="1945">1945</option> 
<option value="1944">1944</option> 
<option value="1943">1943</option> 
<option value="1942">1942</option> 
<option value="1941">1941</option> 
<option value="1940">1940</option> 
<option value="1939">1939</option> 
<option value="1938">1938</option> 
<option value="1937">1937</option> 
<option value="1936">1936</option> 
<option value="1935">1935</option> 
<option value="1934">1934</option> 
<option value="1933">1933</option> 
<option value="1932">1932</option> 
<option value="1931">1931</option> 
<option value="1930">1930</option> 
<option value="1929">1929</option> 
<option value="1928">1928</option> 
<option value="1927">1927</option> 
<option value="1926">1926</option> 
<option value="1925">1925</option> 
<option value="1924">1924</option> 
<option value="1923">1923</option> 
<option value="1922">1922</option> 
<option value="1921">1921</option> 
<option value="1920">1920</option> 
<option value="1919">1919</option> 
<option value="1918">1918</option> 
<option value="1917">1917</option> 
<option value="1916">1916</option> 
<option value="1915">1915</option> 
<option value="1914">1914</option> 
<option value="1913">1913</option> 
</select> 
<label>Where did you hear about us:</label> 
<select class="input" name="hear"> 
<option value="google">Google</option> 
<option value="recommendation">Recommendation</option> 
<option value="email">Email</option> 
<option value="Magazine">Magazine</option> 
<option value="Facebook">Facebook</option> 
<option value="Other">Other</option> 
</select> 
<div class="form_error" style="display:none;color:red;text-align:center;text-shadow:none;"></div> 
<input class="darkBtn submit" type="submit" value="Send my message »" name="submit"> 
</form> 
</div> 
<?php 
} if (isset($_POST['submit'])) { 

$to = "**REMOVED**"; 
$emailfrom = "**REMOVED**"; 
$subject = "Insurance Quote"; 
$message="\r\n Title:" . $title . "\r\n First Name:" . $fname . "\r\n Surname:" . $_POST['sname'] . "\r\n Number: " . $_POST['number1'] . "\r\n Email: " . $_POST['email'] . "\r\n Post: " . $_POST['post'] . "\r\n Day: " . $_POST['day'] . "\r\n Month: " . $_POST['year'] . "\r\n Hear: " . $_POST['hear']; 
$headers = "From:" . $emailfrom; 

if (mail($to,$subject,$message,$headers)) { 
echo "Thankyou for using **REMOVED**"; 
} 
} 

?> 
</body> 
</html> 

** UPDATE : 내가 jQuery를 검증를 제거하면 페이지가 완벽하게 전송 . 내가있는 jQuery를 검증를 유지하는 경우 내가 제출 누를 때

그러나, 다음 페이지는 아무것도하지 않습니다. **

+0

어디에 문제가 있습니까? 양식 유효성 검사? 양식 데이터가 게시되지 않았습니까? PHP 문제? – RafH

+0

죄송합니다! 그 부분을 잊어 버렸습니다 : $ - 업데이트 된 OP –

+0

자바 스크립트 콘솔을보십시오. 귀하의 유효성 검사가 아마도 오류를 던지고 있거나 "유효하지 않은"트리거를 성공적으로 수행하고 있지만 유효성 검사 결과를 처리하지는 않았습니다. 그것은 자바 스크립트없이 작동한다면, 그것은 분명히 문제입니다. – Bosworth99

답변

3

제출 버튼의 이름을 'submit'에서 다른 것으로 변경하고 시도하십시오.

+0

그냥 시도 - 아니 기쁨 –

+0

나는 당신의 코드를 수정하고 나를 위해 잘 작동합니다. 여기 링크 http://codepad.org/9Dx952Tj – LX7

+0

안녕 친구, 당신은 무엇을 수정 했습니까? 제출 버튼 만? –

1

양식의 동작을 설정하는 것을 잊었다.

<form method="POST" class="form_contact" id="contact_form" action="receiver.php"> 
+1

같은 페이지에있는 것처럼 하나가 없습니다. –

+0

'action = ""'? –

+0

그냥 똑같은 문제를 시도해 보았습니다. –

1

웹 서버 액세스 로그는 POST 요청을 받고 표시하는 경우는 아마 mail()에 오류가 표시 될 수 있습니다. 다음을 추가하십시오. else :

if ($mailerror = mail($to,$subject,$message,$headers)) { 
    echo "Thankyou for using **REMOVED**"; 
} else { 
    echo "Error: cannot send email."; 
} 

빈 페이지 대신 오류 메시지가 표시되는지 확인하십시오.

(그렇지 않은 경우 브라우저 콘솔에서 JavaScript 코드에 오류가 있는지 확인하십시오.)

편집

가 나는 또한 입력 "제출"을 명명 문제를 감지, 그냥 이름을 변경하고 모든 복숭아 될 것이다 (분명히 당신이 e.preventDefault(); 를 호출 할 때 아마도, 폼의 기본 동작을 제출 무시). 여기에 해결책이 있습니다 :

<!DOCTYPE HTML> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<?php 
if (isset($_POST['sent'])){ 
} 
else { 
?> 

<meta charset="utf-8" /> 

<link href='http://fonts.googleapis.com/css?family=PT+Sans+Narrow' rel='stylesheet' type='text/css'> 
<link href='http://fonts.googleapis.com/css?family=Droid+Sans' rel='stylesheet' type='text/css'> 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
<script type="text/javascript"> 
jQuery.noConflict(); 
jQuery(document).ready(function($) { 


function isInt(n) { 
return typeof n === 'number' && n % 1 == 0; 
} 

// Form validation 
$(".darkBtn").click(function(e) { 
e.preventDefault(); 
var email_check = /^[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,6}$/i; 
var email = $("form.form_contact .email").val(); 

var zipCheck = /[A-Z]{1,2}[0-9R][0-9A-Z]? [0-9][ABD-HJLNP-UW-Z]{2}/i; 
var zip = $("form.form_contact .zipcode").val(); 

var phoneCheck = /^\d+$/; 
var phone = jQuery("#contact_form .phone").val(); 
console.log(phone); 

var error = ""; 

if(!email_check.test(email)) 
{ 
error = "Please give a valid email address." 

} 

if(!zipCheck.test(zip)) 
{ 
error = "Please give a valid postcode."; 
} 

if(!phoneCheck.test(phone) || phone.length != 11) 
{ 
error = "Please give a valid phone number."; 
} 


// No error ? -> Submit 
if(error == "") 
{ 
$(".form_error").hide(); 
$('#contact_form').submit(); 
console.log("sent."); 
} else { 
$(".form_error").empty().text(error); 
$(".form_error").show(); 
} 
}); 
}); 


</script> 
</head> 
<body> 
<div class="menu_contact"> 
<h3>Contact Us</h3> 
<hr /> 
<form method="post" class="form_contact" id="contact_form"> 
<label>Title:</label> 
<select class="input" name="title"> 
<option value="no">Please select</option> 
<option value="Mr">Mr</option> 
<option value="Mrs">Mrs</option> 
<option value="Miss">Miss</option> 
<option value="Ms">Ms</option> 
</select> 
<label>Contact Number:</label> 
<input type="text" class="input phone" placeholder="Your number" name="number"> 
<label>First name:</label> 
<input type="text" class="input" placeholder="John" name="fname"/> 
<label>Surname:</label> 
<input type="text" class="input" placeholder="Doe" name="sname"/> 
<label>Email:</label> 
<input type="email" class="input email" placeholder="[email protected]" name="email"/> 
<label>Postcode:</label> 
<input type="text" class="input zipcode" placeholder="CW3 9SS" name="post"/> 
<label>Date of birth:</label> 
<select class="input dateDay" name="day"> 
<option>Day</option> 
<option>1</option> 
<option>2</option> 
<option>3</option> 
<option>4</option> 
<option>5</option> 
<option>6</option> 
<option>7</option> 
<option>8</option> 
<option>9</option> 
<option>10</option> 
<option>11</option> 
<option>12</option> 
<option>13</option> 
<option>14</option> 
<option>15</option> 
<option>16</option> 
<option>17</option> 
<option>18</option> 
<option>19</option> 
<option>20</option> 
<option>21</option> 
<option>22</option> 
<option>23</option> 
<option>24</option> 
<option>25</option> 
<option>26</option> 
<option>27</option> 
<option>28</option> 
<option>29</option> 
<option>30</option> 
<option>31</option> 
</select> 
<select class="input dateMonth" name="month"> 
<option>Month</option> 
<option>January</option> 
<option>February</option> 
<option>March</option> 
<option>April</option> 
<option>May</option> 
<option>June</option> 
<option>July</option> 
<option>August</option> 
<option>September</option> 
<option>October</option> 
<option>November</option> 
<option>December</option> 
</select> 
<select class="input dateYear" name="year"> 
<option>Year</option> 
<option value="1996">1996</option> 
<option value="1995">1995</option> 
<option value="1994">1994</option> 
<option value="1993">1993</option> 
<option value="1992">1992</option> 
<option value="1991">1991</option> 
<option value="1990">1990</option> 
<option value="1989">1989</option> 
<option value="1988">1988</option> 
<option value="1987">1987</option> 
<option value="1986">1986</option> 
<option value="1985">1985</option> 
<option value="1984">1984</option> 
<option value="1983">1983</option> 
<option value="1982">1982</option> 
<option value="1981">1981</option> 
<option value="1980">1980</option> 
<option value="1979">1979</option> 
<option value="1978">1978</option> 
<option value="1977">1977</option> 
<option value="1976">1976</option> 
<option value="1975">1975</option> 
<option value="1974">1974</option> 
<option value="1973">1973</option> 
<option value="1972">1972</option> 
<option value="1971">1971</option> 
<option value="1970">1970</option> 
<option value="1969">1969</option> 
<option value="1968">1968</option> 
<option value="1967">1967</option> 
<option value="1966">1966</option> 
<option value="1965">1965</option> 
<option value="1964">1964</option> 
<option value="1963">1963</option> 
<option value="1962">1962</option> 
<option value="1961">1961</option> 
<option value="1960">1960</option> 
<option value="1959">1959</option> 
<option value="1958">1958</option> 
<option value="1957">1957</option> 
<option value="1956">1956</option> 
<option value="1955">1955</option> 
<option value="1954">1954</option> 
<option value="1953">1953</option> 
<option value="1952">1952</option> 
<option value="1951">1951</option> 
<option value="1950">1950</option> 
<option value="1949">1949</option> 
<option value="1948">1948</option> 
<option value="1947">1947</option> 
<option value="1946">1946</option> 
<option value="1945">1945</option> 
<option value="1944">1944</option> 
<option value="1943">1943</option> 
<option value="1942">1942</option> 
<option value="1941">1941</option> 
<option value="1940">1940</option> 
<option value="1939">1939</option> 
<option value="1938">1938</option> 
<option value="1937">1937</option> 
<option value="1936">1936</option> 
<option value="1935">1935</option> 
<option value="1934">1934</option> 
<option value="1933">1933</option> 
<option value="1932">1932</option> 
<option value="1931">1931</option> 
<option value="1930">1930</option> 
<option value="1929">1929</option> 
<option value="1928">1928</option> 
<option value="1927">1927</option> 
<option value="1926">1926</option> 
<option value="1925">1925</option> 
<option value="1924">1924</option> 
<option value="1923">1923</option> 
<option value="1922">1922</option> 
<option value="1921">1921</option> 
<option value="1920">1920</option> 
<option value="1919">1919</option> 
<option value="1918">1918</option> 
<option value="1917">1917</option> 
<option value="1916">1916</option> 
<option value="1915">1915</option> 
<option value="1914">1914</option> 
<option value="1913">1913</option> 
</select> 
<label>Where did you hear about us:</label> 
<select class="input" name="hear"> 
<option value="google">Google</option> 
<option value="recommendation">Recommendation</option> 
<option value="email">Email</option> 
<option value="Magazine">Magazine</option> 
<option value="Facebook">Facebook</option> 
<option value="Other">Other</option> 
</select> 
<div class="form_error" style="display:none;color:red;text-align:center;text-shadow:none;"></div> 
<input class="darkBtn submit" type="button" value="Send my message »" name="smit"> 
<input type="hidden" name="sent" value="true"/> 
</form> 
</div> 
<?php 
} if (isset($_POST['sent'])) { 

$to = "**REMOVED**"; 
$emailfrom = "**REMOVED**"; 
$subject = "Insurance Quote"; 
$message="\r\n Title:" . $_POST['title'] . "\r\n First Name:" . $_POST['fname'] . "\r\n Surname:" . $_POST['sname'] . "\r\n Number: " . $_POST['number'] . "\r\n Email: " . $_POST['email'] . "\r\n Post: " . $_POST['post'] . "\r\n Day: " . $_POST['day'] . "\r\n Month: " . $_POST['year'] . "\r\n Hear: " . $_POST['hear']; 
$headers = "From:" . $emailfrom; 

echo "Thankyou for using **REMOVED**"; 
} 

?> 
</body> 
</html> 
+0

또한, 이메일을 보낼 수없는 이유를 알기위한 경고를 PHP 로그에서 확인하십시오. (아마도 smtp 서버의 설정이 잘못되었습니다) – NotGaeL

+0

OP가 업데이트되었습니다. .- IDK 왜 내가 그것을 추가하지 않았는가? –

+0

내 이메일에 오타가있다. -_- - 그러나 jQuery 유효성 검사가 다시 추가되었으므로 어떤 이유로 제출을 누르지 않고 아무 것도 발생하지 않는다. –

관련 문제