发送电子邮件(服务器端,而不是mailto)当html按钮被击中


Send email (server side, not mailto) when html button is hit

我试图发送电子邮件时,一个html按钮被击中。我希望电子邮件只是在后台发送,而不影响html页面视图在所有。这是我现在正在尝试的

形式
<form action="" class="collapsed nav-form" data-parsley-validate="" id="nav_waitlist_form" method="post">
     <div class="form-group" id="nav_email_group">
          <label class="sr-only" for="join_waitlist_email">Email address</label> 
          <input class="form-control input-lg waitlist-email"data-parsley-error-message="!" data-parsley-required="true" data-parsley-trigger="change" data-parsley-type="email" id="nav_email_input" name="email" placeholder= "Enter email address" type="email">
     </div><button class="btn btn-lg btn-default nav-button" id="nav_waitlist_button" type="submit">Get In Touch With us</button>
</form>
<script type="text/jquery">
     $('#nav_waitlist_button').live('click', function() {
          $.get('sendmail.php?functionName=test&inputvar=something');
          return false;
     });
</script>
PHP:

if ($_REQUEST['functionName'] == 'test') {
mail('asbreckenridge@me.com', 'Some subject', 'somebody')
}

我想知道你为什么不使用表单!如果你想要的只是一个按钮,你可以使用button,你不需要添加没有任何form元素的整个表单。

您可能想要捕获发送到服务器的数据,以便您可以发送该数据。还有一些修改:

JS -如果你使用的是现代版本的jQuery:

$(function() {
     $(document).on('click', '#nav_waitlist_button', function() {
          $.get('sendmail.php?functionName=test&inputvar=something');
          return false;
     });
});

PHP -不遗漏semi-colon:

if ($_REQUEST['functionName'] == 'test') {
     mail('asbreckenridge@me.com', 'Some subject', 'somebody');
}