2013-08-01 63 views
1

發送電子郵件與阿賈克斯我的新WordPress主題開發,我需要使用Ajax/PHP在WordPress在WordPress的

var dataString = 'name=' + name + 
     '&email=' + email + 
     '&contact=' + contact + 
     '&technology=' + technology + 
     '&budget=' + budget + 
     '&details=' + details;   

    alert(dataString); 


    $.ajax({ 
    type: "POST", 
    url: "<?php bloginfo('template_url'); ?>/qoute-sent.php", 
    data: {name:'anas', Email: '[email protected]'}, 
    datatype: "html", 
    success: function() { 
    alert(sent); 
    } 

所有的代碼工作發送電子郵件至alert(dataString);但阿賈克斯後不工作。 ...

這是我的PHP文件中的代碼

$name=$_POST['name']; 
    $email=$_POST['email']; 
    // $contact=$_POST['contact']; 
    //$technology=$_POST['technology']; 
    // $budget=$_POST['budget']; 
    //$details=$_POST['details']; 

    //-------------for email setup---------------------------- 
    $to = "[email protected]"; 
    //------------------------------------------ 
    $message = " \n " . 

    "Name ".$name." \n " . 
    "Email : ".$email." \n " ; 

    //---------------------------------- 
    $subject = "MWM Qoute Request"; 
    $headers = 'From: '.$email . "\r\n" . 
    'Reply-To: '.$to . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 
    //echo "TO : ".$to."<br>"; 
    //echo "FROM : ".$email."<br>"; 
    //echo "<br>".$message; 
    mail($to, $subject,$message,$headers); 
+0

不確定'數據類型:「html」'的作品,你可以使用$ _POST檢索以這種方式發佈的數據?任何人?我認爲'datatype'應該是'dataType'。 –

+0

這是一個可能的解決方案,雖然它不使用任何「代碼」,但它提供了很大的靈活性。我會使用一個名爲Contact Form 7的插件。我知道這並不真正回答你的問題,你可能只是想學習在PHP中編程,我完全理解,但如果你需要一個快速的聯繫表單,我真的會推薦聯繫表單7 –

回答

0

的WordPress提供的功能和鉤子與AJAX開發,使其很容易。見the Codex

您還應該查看wp_mail發送電子郵件。

請記住,WordPress以noconflict模式加載jQuery,所以您的$選擇符應該是'jQuery'。

爲防止濫用,您應該考慮在腳本中添加一個隨機數。 WordPress也可以處理:)請參閱wp_create_nonce

我想this is a good reference article一旦你在的地方骨頭

0
url: "<?php bloginfo('template_url'); ?>/qoute-sent.php", 

如果該URL是 「引號sent.php」?只是檢查。

另外,你有沒有設置WP的AJAX動作?沒有它們,它就無法工作。我一般會這樣做:

<?php 
    function my_send_email(){ 
     doStuff(); // etc.. 
     echo 'sent!'; 
     die(); 
    } 
    add_action('wp_ajax_my_send_email', 'my_send_email'); 
    add_action('wp_ajax_nopriv_my_send_email', 'my_send_email'); 
?> 

像馬克說,我還建議使用wp_mail。

+0

是的url是一樣的 – user2641979

+0

好!擔心這是一個錯字。但是第二部分......你有AJAX動作嗎? –