Отправка электронной почты (на стороне сервера, а не mailto) при нажатии кнопки html

#php #jquery #html #email

#php #jquery #HTML #Адрес электронной почты

Вопрос:

Я пытаюсь отправить электронное письмо при нажатии кнопки 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=testamp;inputvar=something');
          return false;
     });
</script>
 

PHP:

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

Комментарии:

1. Для этого вам нужен AJAX.

2. @Jonast92 — Он использует AJAX, $.get

3. закройте эту почту php ‘;’

4. Так что же не работает с вашим кодом? Какие ошибки вы получаете?

5. К вашему СВЕДЕНИЮ: mailto тоже на стороне сервера. В чем проблема?

Ответ №1:

Интересно, почему вы не используете форму! Если все, что вам нужно, это кнопка, вы можете использовать button , и вам не нужно будет добавлять целую форму без каких-либо form элементов.

Возможно, вам захочется захватить данные, которые вы отправляете на сервер, чтобы вы могли отправлять эти данные. Всего несколько исправлений:

JS — если вы используете современную версию jQuery:

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

PHP — не пропускайте semi-colon :

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