2016-02-27 118 views
2

我是一名編碼新手,所以我複製了聯繫表格並將其粘貼到我的網站。問題是它不能正常工作。當我按下發送按鈕時,它說:「對不起丹尼爾,似乎我的郵件服務器沒有響應,請稍後再試!」也許我包括在一個錯誤的方式(我用<include("mail/contact_me.php");></include(>)的PHP ... IDK 我粘貼HTML中的PHP的,因爲我沒有找到的代碼片段PHP部分:d聯繫表格無法正常工作

$(function() { 
 

 
    $("#contactForm input,#contactForm textarea").jqBootstrapValidation({ 
 
    preventSubmit: true, 
 
    submitError: function($form, event, errors) { 
 
     // additional error messages or events 
 
    }, 
 
    submitSuccess: function($form, event) { 
 
     // Prevent spam click and default submit behaviour 
 
     $("#btnSubmit").attr("disabled", true); 
 
     event.preventDefault(); 
 

 
     // get values from FORM 
 
     var name = $("input#name").val(); 
 
     var email = $("input#email").val(); 
 
     var phone = $("input#phone").val(); 
 
     var message = $("textarea#message").val(); 
 
     var firstName = name; // For Success/Failure Message 
 
     // Check for white space in name for Success/Fail message 
 
     if (firstName.indexOf(' ') >= 0) { 
 
     firstName = name.split(' ').slice(0, -1).join(' '); 
 
     } 
 
     $.ajax({ 
 
     url: "././mail/contact_me.php", 
 
     type: "POST", 
 
     data: { 
 
      name: name, 
 
      phone: phone, 
 
      email: email, 
 
      message: message 
 
     }, 
 
     cache: false, 
 
     success: function() { 
 
      // Enable button & show success message 
 
      $("#btnSubmit").attr("disabled", false); 
 
      $('#success').html("<div class='alert alert-success'>"); 
 
      $('#success > .alert-success').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;") 
 
      .append("</button>"); 
 
      $('#success > .alert-success') 
 
      .append("<strong>Your message has been sent. </strong>"); 
 
      $('#success > .alert-success') 
 
      .append('</div>'); 
 

 
      //clear all fields 
 
      $('#contactForm').trigger("reset"); 
 
     }, 
 
     error: function() { 
 
      // Fail message 
 
      $('#success').html("<div class='alert alert-danger'>"); 
 
      $('#success > .alert-danger').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;") 
 
      .append("</button>"); 
 
      $('#success > .alert-danger').append("<strong>Sorry " + firstName + ", it seems that my mail server is not responding. Please try again later!"); 
 
      $('#success > .alert-danger').append('</div>'); 
 
      //clear all fields 
 
      $('#contactForm').trigger("reset"); 
 
     }, 
 
     }) 
 
    }, 
 
    filter: function() { 
 
     return $(this).is(":visible"); 
 
    }, 
 
    }); 
 

 
    $("a[data-toggle=\"tab\"]").click(function(e) { 
 
    e.preventDefault(); 
 
    $(this).tab("show"); 
 
    }); 
 
}); 
 

 
// When clicking on Full hide fail/success boxes 
 
$('#name').focus(function() { 
 
    $('#success').html(''); 
 
});
<?php // Check for empty fields if(empty($_POST[ 'name']) || empty($_POST[ 'email']) || empty($_POST[ 'phone']) || empty($_POST[ 'message']) || !filter_var($_POST[ 'email'],FILTER_VALIDATE_EMAIL)) { echo "No arguments Provided!"; return false; } $name=$ 
 
_POST[ 'name']; $email_address=$ _POST[ 'email']; $phone=$ _POST[ 'phone']; $message=$ _POST[ 'message']; $to='[email protected]' ; $email_subject="Website Contact Form: $name" ; $email_body="You have received a new message from your website contact form.\n\n" 
 
. "Here are the details:\n\nName: $name\n\nEmail: $email_address\n\nPhone: $phone\n\nMessage:\n$message"; $headers="From: [email protected]\n" ; $headers .="Reply-To: $email_address" ; mail($to,$email_subject,$email_body,$headers); return true; ?> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" /> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="col-lg-6 col-lg-offset-3 text-center"> 
 
    <form name="sentMessage" id="contactForm" novalidate> 
 
    <div class="row control-group"> 
 
     <div class="form-group col-xs-12 floating-label-form-group controls"> 
 
     <label>Име</label> 
 
     <input type="text" class="form-control" placeholder="Име" id="name" required data-validation-required-message="Моля, въведете името си."> 
 
     <p class="help-block text-danger"></p> 
 
     </div> 
 
    </div> 
 
    <div class="row control-group"> 
 
     <div class="form-group col-xs-12 floating-label-form-group controls"> 
 
     <label>Email Адрес</label> 
 
     <input type="email" class="form-control" placeholder="Email" id="email" required data-validation-required-message="Моля, въведете email адреса си."> 
 
     <p class="help-block text-danger"></p> 
 
     </div> 
 
    </div> 
 
    <div class="row control-group"> 
 
     <div class="form-group col-xs-12 floating-label-form-group controls"> 
 
     <label>Телефон</label> 
 
     <input type="tel" class="form-control" placeholder="Телефон" id="phone" required data-validation-required-message="Моля, въведете телефонния си номер."> 
 
     <p class="help-block text-danger"></p> 
 
     </div> 
 
    </div> 
 
    <div class="row control-group"> 
 
     <div class="form-group col-xs-12 floating-label-form-group controls"> 
 
     <label>Съобщение</label> 
 
     <textarea rows="5" class="form-control" placeholder="Съобщение" id="message" required data-validation-required-message="Моля, въведете съобщението си."></textarea> 
 
     <p class="help-block text-danger"></p> 
 
     </div> 
 
    </div> 
 
    <br> 
 
    <div id="success"></div> 
 
    <div class="row"> 
 
     <div class="form-group col-xs-12"> 
 
     <button type="submit" value=" Submit " name="submit" class="btn btn-primary btn-xl">Send</button> 
 
     </div> 
 
    </div> 
 
    </form> 
 
</div>

+0

什麼呢'<包括( 「郵件/ contact_me.php」);> 「是嗎?它應該是'<?php include(「mail/contact_me.php」); ?>'。 – Lal

+0

我試過這樣,但它仍然無法正常工作。 :/ – Daniel

回答

0

您目前的代碼對於簡單的聯繫表單來說似乎很複雜。我已經使用bootstrap 3框架爲我的網站http://ddry.co.uk/contact_us.html創建了一個聯繫表單。我已經爲您提供了一個JSFiddle所需的代碼。它包括一個簡單的反垃圾郵件過濾器,所以如果用戶提供了不正確的答案,我有一個html重定向指示用戶這一點,如果用戶提供顯示SUCCESS html頁面的正確答案,它也有一個重定向。您需要將PHP文件上傳到您的服務器,以便在測試過程中使用該文件。 (PHP代碼在帖子的底部)。如果你需要任何幫助,只是問。希望這有助於:-)

https://jsfiddle.net/andydry1/bmh3f5ur/1/

------- PHP代碼------

<?php 
    function isEmail($clientEmail) { 
    return filter_var($clientEmail, FILTER_VALIDATE_EMAIL);} 

if($_POST){ 
    // Enter the email where you want to receive the message 
    $myemail = 'your-email'; 
    $name = addslashes(trim($_POST['name'])); 
    $clientEmail = addslashes(trim($_POST['email'])); 
    $subject = addslashes(trim($_POST['phone'])); 
    $phone = addslashes(trim($_POST['phone'])); 
    $message = addslashes(trim($_POST['message'])); 
    $antispam = addslashes(trim($_POST['antispam'])); 
    if($antispam == '12' && isEmail($clientEmail) && $phone != '' && $message != '' ){ 
    $to = $myemail; 
    $email_subject = "Contact form submission: $name"; 
    $email_body = "You have received a new message. ". 
    " Here are the details:\n Name: $name \n ". 
    "Email: $clientEmail\n Message: \n $message\n Phone: $phone"; 
    $headers = "From: $myemail\n"; 
    $headers .= "Reply-To: $clientEmail"; 
    mail($to,$email_subject,$email_body,$headers); 
    echo json_encode($array); 
    header('Location: success.html'); } 
    else { 
    header('Location: failed-message.html'); } 
    }?> 

注意

不要忘記改變:

您的電子郵件地址

地點:success.html

地點:失敗 - message.html

還包括所有相關的自舉3 css文件

+1

是啊...只是要求用戶的姓名,電子郵件,電話號碼和他給我的信息/反饋。我想我會自己創建一個新的聯繫表單。 :) – Daniel

+0

是否可以這樣做,而不是打開一個新的頁面提交按鈕會觸發一個彈出窗口或可能出現一個div?我正在研究單頁設計。 :) – Daniel

+0

你可以嘗試這樣的事情,需要多一點編碼: http://www.websitecodetutorials.com/code/php/one-webpage-php-contact-form.php 這是源代碼代碼: http://www.websitecodetutorials.com/code/php/one-webpage-php-contact-form.txt 或者你也可以使用上面的代碼,但改變你的html,所以它看起來相同的頁面,但取而代之的是成功面板。 – Andy14