2017-09-09 8 views
0

내가 뭘 잘못하고 있는지 잘 모르겠습니다. 전자 메일을 보내는 양식을 보내 왔습니다. 하지만 제출을 클릭해도 아무런 변화가 없습니다. UI 용으로 Materialize CSS를 사용하고 있습니다.Ajax 및 PHP로 작성된 양식의 제출 단추를 클릭 한 후에 아무 것도 발생하지 않습니다.

$(function(){ 
    $("#contact").on("submit", function(e){ 
     e.preventDefalut(); 
     submitForm(); 
    }); 
}); 

function submitForm() { 
    var fname = $("#first_name").val(); 
    var lname = $("#last_name").val(); 
    var phone = $("#phone").val(); 
    var email = $("#email").val(); 
    var message = $("#message").val(); 

    $.ajax({ 
     type: "POST", 
     url: "contact.php", 
     data: "fname=" + fname + "&lname=" + lname + "&phone=" + phone + "&email=" + email + "&message=" + message, 
     sucess : function(text) { 
      if(text == "success") { 
       formSuccess(); 
      } else { 
       formError(); 
       submitMSG(false, text); 
      } 
     } 
    }); 
}; 

function formSuccess() { 
    $("#contact")[0].reset(); 
    submitMSG(true, "We have received your message and would like to thank you for writing to us. If your inquiry is urgent, please use the telephone number to contact us") 
} 

function formError() { 
    $("#contact").removeClass().addClass(), function() { 
     $(this).removeClass(); 
    } 
} 

function submitMSG(valis, MSG) { 
    if(valid) { 
     var msgClasses = "h3"; 
    } else { 
     var msgClasses = "h3"; 
    } 
    $("#msgSubmit").removeClass.addClass(msgClasses).text(msg); 
} 

그리고

<?php 
$errroMSG = ""; 

if (empty($_POST["fname"])) { 
    $errorMSG = "First Name is required "; 
} else { 
    $fname = $_POST["fname"]; 
} 

if (empty($_POST["lname"])) { 
    $errorMSG = "Last Name is required "; 
} else { 
    $lname = $_POST["lname"]; 
} 

if (empty($_POST["phone"])) { 
    $errorMSG = "Phone is required "; 
} else { 
    $phone = $_POST["phone"]; 
} 

if (empty($_POST["email"])) { 
    $errorMSG = "Email is required "; 
} else { 
    $email = $_POST["email"]; 
} 

if (empty($_POST["message"])) { 
    $errorMSG = "Message is required "; 
} else { 
    $pmessage = $_POST["message"]; 
} 

$EmailTo = "[email protected]"; 
$Subject = "New message from United Constructions"; 

$Body .= "First Name: "; 
$Body .= $fname; 
$Body .= "\n"; 

$Body .= "Last Name: "; 
$Body .= $lname; 
$Body .= "\n"; 

$Body .= "Phone: "; 
$Body .= $phone; 
$Body .= "\n"; 

$Body .= "Email: "; 
$Body .= $email; 
$Body .= "\n"; 

$Body .= "Message: "; 
$Body .= $message; 
$Body .= "\n"; 

$success = mail($EmailTo, $Subject, $Body, "From:".$email); 

if ($success && $errorMSG == ""){ 
    echo "success"; 
}else{ 
    if($errorMSG == ""){ 
     echo "Something went wrong :("; 
    } else { 
     echo $errorMSG; 
    } 
} 
?> 

그래서 나는 모달을 열 수 오전 세부 사항을 작성 후 내가 클릭 마지막으로 PHP 코드를 : 나는 또한 다음과 Ajax를 사용하고

<div id="modal-contact" class="modal"> 
    <div class="modal-content"> 
     <h5 class="center">Get in touch</h5> 
     <div class="row"> 
      <form id="contact" method="post" class="col s12"> 
       <div class="row"> 
        <div class="input-field col s12 m12 l4"> 
         <input id="first_name" type="text" class="validate"> 
         <label for="first_name">First Name</label> 
        </div> 
        <div class="input-field col s12 m12 l4"> 
         <input id="last_name" type="text" class="validate"> 
         <label for="last_name">Last Name</label> 
        </div> 
        <div class="input-field col s12 m12 l4"> 
         <input id="phone" type="tel" class="validate" maxlength="10" minlength="10"> 
         <label for="phone">Phone</label> 
        </div> 
        <div class="input-field col s12"> 
         <input id="email" class="validate" type="email"> 
         <label for="email">Email Address</label> 
        </div> 
        <div class="input-field col s12"> 
          <textarea id="message" class="materialize-textarea validate"></textarea> 
          <label for="message">How can we help?</label> 
        </div> 
       </div> 
      </form> 
      <div class="hide" id="msgSubmit"></div> 
     </div> 
     <div class="modal-footer"> 
      <button class="btn waves-effect light-green accent-4" type="submit">Submit <i class="material-icons right">send</i></button> 
     </div> 
    </div> 

제출 단추에. JS 또는 PHP에 추가해야하는 경우 Google reCaptcha를이 양식에 추가 할 수 없습니다. PHP에 추가하면 JS 파일을 변경해야합니다. 답변 해 주셔서 대단히 감사합니다.

+0

누락 형태로 동작 –

+0

하지만 Ajax를 사용하고 가입일 :

$(function(){ $("#contact").on("submit", function(e){ e.preventDefault(); submitForm(); }); }); 

로를 동작? – xxsoxx

+0

성공 대신 성공을 입력하셨습니까? – Hissvard

답변

0

그것의 간단한 단지의 변화/위의 코드의 아약스 부분 교체 : 그것은 나를 양식을 추가 할 필요가

$(function(){ 
    $("#contact").submit(function(e){ 
     submitForm(); 
     e.preventDefault(); 
    }); 
}); 
+0

요청에 따라 변경했습니다 .. 아직 작동하지 않습니다. – xxsoxx