首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jQuery .ajax()时不发送电子邮件的PHP邮件脚本

使用jQuery .ajax()时不发送电子邮件的PHP邮件脚本
EN

Stack Overflow用户
提问于 2012-12-19 06:27:24
回答 1查看 1.1K关注 0票数 1

我完全被这件事难住了。我正在尝试使用jQuery ajax函数将帖子数据发送到电子邮件脚本。

这是jQuery代码。

代码语言:javascript
复制
$('#bas-submit-button').click(function () {
    var baslogo = $('input#bas-uploaded-logo').val();
    var basscent = $('input[name="scent"]:checked').val();
    var bascolor = $('input[name="color"]:checked').val();
    var basdistributor = $('select#bas-distributor-name').val();
    var basname = $('input#bas-contact-name').val();
    var basemail = $('input#bas-contact-email').val();
    var bascontactphone = $('input#bas-contact-phone').val();
    var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
    var baspantone = $('input#pantone').val();
    var basclip = $('input[name="clip-name"]:checked').val();
    var dataString = 'bas-contact-name=' + basname + '&bas-contact-email=' + basemail + '&bas-contact-phone=' + bascontactphone + '&bas-uploaded-logo=' + baslogo + '&scent=' + basscent + '$color=' + bascolor + '&clip-name=' + basclip + '&pantone=' + baspantone + '&bas-distributor-name=' + basdistributor;
    $.ajax({
        type: "POST",
        url: "build-a-smen-submit.php",
        data: dataString,
        success: function () {
            $("#bas-submit-message").removeClass("error").addClass("success").html("Virtual Sample Submitted!").fadeIn(200).delay(5000).fadeOut(200);
        }
    });
    return false;
});

和我的PHP脚本。

代码语言:javascript
复制
<?

/* config start */
$emailAddress = '*****';
$ccAddress = '*****';
/* config end */

require "class.phpmailer.php";

session_start();

if($_POST['bas-submit-button']=='Submit'){

$msg='Name: '.$_POST['bas-contact-name'].'<br />
Email: '.$_POST['bas-contact-email'].'<br />
Phone: '.$_POST['bas-contact-phone'].'<br /><br />
Options<br /><br />
Logo File: '.$_POST['bas-uploaded-logo'].'<br />
Scent Selection: '.$_POST['scent'].'<br />
Accent Color: '.$_POST['color'].'<br />
Name on clip: '.$_POST['clip-name'].'<br />
Pantone Colors: '.$_POST['pantone'].'<br />
Distributor: '.$_POST['bas-distributor-name'].'<br /><br />
Submitting IP:  '.$_SERVER['REMOTE_ADDR'];

$mail = new PHPMailer();
$mail->IsMail();
$mail->AddReplyTo($_POST['bas-contact-email'], $_POST['bas-contact-name']);
$mail->AddAddress($emailAddress);
$mail->AddCC($ccAddress);
$mail->SetFrom($_POST['bas-contact-email'], $_POST['bas-contact-name']);
$mail->Subject = 'Build-A-Smen Promotional Product Interest';
$mail->MsgHTML($msg);
$mail->Send();

if($_POST['ajax']){
    echo '1';
}
else{
    if($_SERVER['HTTP_REFERER'])
        header('Location: '.$_SERVER['HTTP_REFERER']);
    exit;
}

};

?>

我认为问题出在从jQuery发送POST数据的某个地方。如果我注释掉我的jQuery代码,php脚本可以正常工作,但是当我使用jQuery ajax函数运行它时,我得到ajax成功函数触发,但没有电子邮件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-19 06:39:14

你的问题在于数据: dataString。

要么像前面说的那样序列化,要么尝试类似的东西:

数据:{ basscent : basscent,bascolor : bascolor,}等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13942534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档