2012-12-06 55 views
1

嗨在那裏我試圖創建一個簡單的PHP電子郵件表單,而不需要頁面刷新使用jQuery .ajax()方法,但是我希望所有的字段重置一次電子郵件已發送,並且此時不會因某種原因發生!jQuery和PHP電子郵件表單不運行成功功能

這裏是我的jQuery:

$.ajax({ 
    url:"http://www.mysite.co.uk/contactMe.php", 
    data: {'email': email,'content': content}, 
    success: function(response){ 
     $("#mailContent").css({ 'box-shadow': ''}); 
      $("#email").css({'box-shadow': ''});  
      $("#email").val(''); 
      $("#mailContent").val(''); 
      alert("DONE"); 

     return false; 
     } 
}) 

,這裏是我的PHP

<?php 

function spamcheck($field) 
    { 
    //filter_var() sanitizes the e-mail 
    //address using FILTER_SANITIZE_EMAIL 
    $field=filter_var($field, FILTER_SANITIZE_EMAIL); 

    //filter_var() validates the e-mail 
    //address using FILTER_VALIDATE_EMAIL 
    if(filter_var($field, FILTER_VALIDATE_EMAIL)) 
    { 
    return TRUE; 
    } 
    else 
    { 
    return FALSE; 
    } 
    } 

$email = $_GET['email']; 
$content = $_GET['content']; 

$mailcheck = spamcheck($email); 
    if ($mailcheck==FALSE) 
    { 

    } 
    else 
    {//send email 
    mail("[email protected]", "Subject: Website Contact Form", 
    $content, "From: $email"); 
    } 

?> 

請注意,我已經改變了URL地址和電子郵件地址的隱私,因爲我收到的電子郵件發送罰款它在我的收件箱中。我也嘗試使用相同的東西:

.ajax().done(function{})並沒有這樣的運氣,最糟糕的是這個工作很好,我用它在另一個網站上時,我使用.ajax()來創建評論系統,但它拒絕在本網站上工作! :/

你的沮喪,西蒙。

編輯:形式:

<form name="contact"> Email: <input name="email" type="text" id="email" ><br> 
Message:<br> <textarea name="message" rows="20" cols="246" id="mailContent"></textarea><br> 
<input class="button" value=""> </form> 
+1

出於好奇,什麼瀏覽器你使用?如果你使用Firefox,你應該安裝Firebug並學習如何使用Network和Console標籤來調試AJAX請求和響應(F12)。如果您使用Chrome,則開發人員工具與內置的功能(也包含F12)相同。它會讓您的生活更輕鬆。 –

+0

是你的網站在'localhost'上運行嗎?還是一個真正的域名? – Jakub

+0

如果'success'沒有運行,這意味着請求沒有完成,無論是404還是500(或其他)。如果你不熟悉JS調試,你可以給我們一個鏈接到你的演示? – Snuffleupagus

回答

0

不能使用AJAX來POST跨域(上CORS念起來了解具體);出於安全原因,瀏覽器會阻止它,因爲它可能會將您(和您的數據)帶到陰涼的網站,而您不會注意到它。

如果您發佈腳本是在同一臺服務器上,你應該刪除的域名,並使用路徑相對於Web站點的根目錄:

url:"/contactMe.php" 
+1

非常感謝你:)很好的解釋太:)有一個餅乾! – simonthumper

相關問題