2012-03-07 49 views
0

我有这样JQuery Ajax响应不工作|腓

<script type="text/javascript"> 

function email(){ 
var myTextField = document.getElementById('email_hidden').value; 
//alert(myTextField); 
$.ajax({  
    type: "POST", 
    url: "sendmail.php", 
    data: "email_user="+myTextField, 
    success: function(response){ 
    alert(response);  

} 
}); 
} 
</script> 

我sendmail.php代码的代码是这样的。

<?php 
    $to = $_REQUEST['email_user']; 
    $headers = 'MIME-Version: 1.0' . "\r\n"; 
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
    $headers .= "From: Haan Test<[email protected]>\r\n"; 
    $message_body = "Your Details"; 
    $subject = "Check mail"; 
    mail($to, $subject, $message_body, $headers); 
    echo "success"; 
    ?> 

和我的html看起来像这样。

<div id="email_hide"><a href="#" onclick="email()" >Send Email</a></div> 

我得到我的萤火控制台成功 的反应,但我不能警报的响应。我也可以收到上述jQuery的ajax功能(sendmail.php)

的邮件也就是说,如何在ajax调用后提醒响应.. 我也尝试过onComplete也。 plz帮助我。

我之情况是这样的: 用户页面(index1.html)>>贝宝沙盒(事务)>>用户页面(index2.html) 在这里,在index2.html,我取贝宝沙箱最后交易细节发送邮件 在右上角,所以当用户点击发送邮件(锚标签)时,邮件应该通过ajax jquery调用发送。

感谢 阿里汉

+1

什么样的数据格式是响应? – charlietfl 2012-03-07 05:31:27

+0

请求完成后,您可以将收到的确切消息数据粘贴到您的萤火虫中吗? – linuxeasy 2012-03-07 05:34:24

+0

@charlietfl - sendmail.php的响应是成功的。我编辑了我的代码。 PLZ检查它 – hjaffer2001 2012-03-07 06:02:03

回答

1

尝试使用速记jQuery的方法后:

<script type="text/javascript"> 

    function email(){ 
     var myTextField = document.getElementById('email_hidden').value; 
     //alert(myTextField); 
     $.post("sendmail.php", {"email_user": myTextField}, function(data) { 
      alert(data); 
     }); 
    } 

</script> 
+0

请再次检查我的问题,我已审查。 – hjaffer2001 2012-03-07 06:40:48

1

尝试添加

$.ajax({  
    type: "POST", 
    url: "sendmail.php", 
    data: "email_user="+myTextField, 
    success: function(response){ 
     alert("Success\n" + response);  
    }, 
    error: function(errMsg) { 
     alert("Error\n" + errMsg); 
    } 
}); 

,看看哪一个被调用。

+0

无变化。即使添加了我们的代码后,我仍然没有任何提醒。任何其他建议plz? – hjaffer2001 2012-03-07 05:57:54

+1

@ hjaffer2001它有可能是你的代码在服务器端超时?如果你想要,你可以尝试修改,使回声'成功';在mail()之前;并调用flush(); 其实,给它一个测试并注释掉邮件();走着瞧吧。也许只是做一个print_r($ _ POST);死();在代码的开头? – DdD 2012-03-07 06:06:26

+0

scenerio是这样的。我有一个从付款paypal沙箱中重定向的页面,以及我上次的交易详情。所以当用户点击发送邮件按钮后重定向从沙箱贝宝,邮件应通过jQuery发送ajax – hjaffer2001 2012-03-07 06:30:59

4

如果乌尔数据类型是JSON,那就试试这个

<script type="text/javascript"> 

function email(){ 
var myTextField = document.getElementById('email_hidden').value; 
//alert(myTextField); 
$.ajax({  
    type: "POST", 
    url: "sendmail.php", 
    data: "email_user="+myTextField, 
    dataType: "json", 
    success: function(response){ 
    alert(response);  

} 
}); 
} 
</script> 
+0

响应不是Json :( – hjaffer2001 2012-03-07 05:55:57

+0

然后把任何 – 2012-03-07 05:58:06

+0

我编辑了我的代码。plz检查 – hjaffer2001 2012-03-07 06:03:42