2014-02-20 151 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