2014-02-20 68 views
0

我想直接轉到我的問題:我的應用程序顯示來自mysql數據庫的數據,用戶可以選擇這些項目並將它們保存到一個javascript列表中。在他選擇了他的項目之後,我們希望他在輸入字段中輸入他的名字,並點擊一個按鈕,「javascript-list」(僅包含字符串)應通過post & ajax發送到我們的mailForm.php。JQuery Ajax發佈到MailForm.php

的問題是,我們的mailForm.php工作完全正常(試圖通過Java訪問和發送數據後),但我們不能夠通過Ajax和JavaScript後的數據(看看:)

mailForm .PHP

<? 
if ($_POST) { 
    $message = ""; 
    while (list ($key, $val) = each ($_POST)) { 
     if ($key == "mailAn") { 
      $mymail = $val; 
     } elseif ($key == "subject") { 
      $subject = $val; 
     } elseif ($key == "mailVon") { 
      $email = $val; 
     } elseif ($key == "message") { 
      $message = $val; 
     } 
    } 
    //array_walk ($_POST, "GetValues"); 
    if (mail($mymail,$subject,$message,"From: $email")) { 
      header (""); 
    } else { 
     header ("Location: form_notok.htm"); 
     //echo "Fehler beim Senden des Formulars!"; 
    } 
} 
?> 

正如你所看到的魏某有4個按鍵(麥蘭,主題,mailVon,消息)。任何想法如何通過JS/jQuery的去? (得到的字符串(javascriptlist)的消息和名稱(從inputfield)到mailVon)

的Javascript:

$("#contact").submit(function(e){ 
    e.preventDefault(); 
    var name = $("#name").val(); //Inputfield with Name 
    var email = $("#email").val(); // Inputfield with email 
    var text = $("#text").val(); //should be list 
    var dataString = 'mailVon=' + name + '&mailAn=' + email + '&message=' + text; 
    $.ajax({ 
    type: "POST", 
    url: "./mailForm.php", 
    data: dataString, 
    success: function(){ 
     $('.success').fadeIn(1000); 
    } 
    }); 
    return false; 
}); 

編輯: 我現在加入了主題後PARAM:

var dataString = 'mailVon=' + name + '&subject' + 'Test via javascript' + '&mailAn=' + email + '&message=' + text; 

我仍然得到一個成功的消息,但沒有郵件...

+0

是如何你用js發佈數據? – Andrei

+0

在我的問題中加入了它 - 抱歉。正如你所看到的,我們現在正在通過查詢ajax發佈一個沒有列表的正常形式(texfield,textfield,textarea) - 問題:這應該會很好,但它不會。 – DominikAngerer

回答

0

上面的代碼工作完全正常 - 問題是,我們使用的測試主機的設置。使用我們的商業網站空間,它會工作。好看。

MailForm.php

<? 
if ($_POST) { 
    $message = ""; 
    while (list ($key, $val) = each ($_POST)) { 
     if ($key == "mailAn") { 
      $mymail = $val; 
     } elseif ($key == "subject") { 
      $subject = $val; 
     } elseif ($key == "mailVon") { 
      $email = $val; 
     } elseif ($key == "message") { 
      $message = $val; 
     } 
    } 
    //array_walk ($_POST, "GetValues"); 
    if (mail($mymail,$subject,$message,"From: $email")) { 
      header (""); 
    } else { 
     header ("Location: form_notok.htm"); 
     //echo "Fehler beim Senden des Formulars!"; 
    } 
} 
?> 

JavaScript和固定郵件& JavaScript的列表作爲dataString:

// Contact Form 
$("#contact").submit(function(e){ 
e.preventDefault(); 
var name = $("#name").val(); 
var email = '[email protected]'; 
var message = ''; 
for (var i = 0; i < musicList.length; i++) { 
    message += musicList[i]; 
    if(i < (musicList.lenght-1)){ 
     message += ', '; 
    } 
} 
var dataString = 'mailVon=' + name + '&subject=' + 'Betreff: Music' + '&mailAn=' + email + '&message=' + message; 
$.ajax({ 
type: "POST", 
url: "./mailForm.php", 
data: dataString, 
success: function(data) { 
    if(data.status == 'success') 
      $('.success').fadeIn(1000); 
    else if(data.status == 'error') 
     $('.error').fadeIn(1000);  
    } 
}); 
return false; 
}); 

希望這將幫助別人太

-Domi

1

我會設置一些回聲和調試它與螢火蟲。

if (isset($_POST['mailAn'])){ 
    echo "Phase 1"; 
    foreach($_POST as $key => $value) 
    { 
    switch ($key){ 
     case "mailAn": 
      $mymail = $value; 
      echo "Phase 2"; 
      break; 
    } 
    } 
    }else{ 
     echo "FAILED"; 
    } 

我會爲郵件功能添加標題。 `

<? 
     // To send HTML mail, the Content-type header must be set 
     $headers = 'MIME-Version: 1.0' . "\r\n"; 
     $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
     // Additional headers 
     $headers .= 'To: ' . $to . "\r\n"; 
     $headers .= 'From: ' . $from . "\r\n"; 
     $headers .= 'Cc: ' . "\r\n"; 
     $headers .= 'Bcc: ' . "\r\n"; 
     // Mail it 
     mail($to, $subject, $message, $headers); 
    ?> 

`

+0

我的PHP mailForm中沒有錯誤 - 如果我通過Java發送數據一切都很好 - 問題出現在javascript ...:/ – DominikAngerer

+0

而不是var dataString ='mailVon ='+ name +'&mailAn =' + email +'&message ='+ text;使用var $ data = $('#Form_Name')。serialize();讓jquery處理數據 –

+0

但是我應該如何在我的mailForm中解析這些數據? idname = paramname? – DominikAngerer