Как применить несколько действий к кнопке SUBMIT с помощью Javascript, JQuery? - PullRequest
0 голосов
/ 30 ноября 2018

В настоящее время у меня есть форма с 3 кнопками отправки, которые передают переменные «FULLNAME» и «EMAIL» и «DB» через URL в зависимости от того, какая кнопка отправки нажата - эти значения затем заполняют поля на следующей странице.

<form action="https://othersite.com/index.html?DB=BOTH&values[FULLNAME]&values[EMAIL]" method="get" name="form" >
<input type="hidden" name="DB" value="BOTH" />
<input type="text" id="fullname" name="values[FULLNAME]"  >
<input type="email" id="email" name="values[EMAIL]" >

<button type="submit" name="OS_TYPE" value="OSX &amp; WINDOWS">OSX &amp; WINDOWS</button>
<button type="submit" name="DB" value="OSX" formaction="https://othersite.com/index.html?DB=OSX&values[FULLNAME]&values[EMAIL]">OSX ONLY</button>
<button type="submit" name="DB" value="WINDOWS" formaction="https://othersite.com/index.html?DB=WINDOWS&values[FULLNAME]&values[EMAIL">WINDOWS ONLY</button>
</form>

Приведенная выше форма работает правильно, предварительно заполняя поля FULLNAME и EMAIL в форме «ОБА БД», «ОСХ БД» или «БД WINDOWS» на странице «othersite.com» в зависимости от того, какая кнопка отправки нажата(ОБА по умолчанию).

Однако мне также нужно отправить электронное письмо со значениями FULLNAME, EMAIL и, если возможно, типа DB, желательно используя formmail.php, где я бы указал:

  1. URL-адрес сценария formmail на моем сервере, например, myexample.com/formmail.php
  2. Метод отправки POST
  3. Скрытое поле ввода, содержащее адрес электронной почты получателя.for formmail
  4. Скрытое поле ввода, содержащее тему электронного письма

Пользователь по-прежнему будет перенаправлен на страницу othersite.comв ожидании нажатия кнопки отправки.

Любая помощь с использованием jQuery, javascript или PHP будет принята с благодарностью.Я разработчик внешнего интерфейса, и это выходит за рамки моих навыков!

Спасибо

1 Ответ

0 голосов
/ 30 ноября 2018

Вы не можете напрямую отправить электронное письмо через JavaScript.Однако вы можете запустить почтовый клиент с предварительно заполненным адресом электронной почты, используя window.open:

window.open('mailto:test@example.com');

Теперь, если вы этого хотите, в текущей форме удалите атрибут type = "submit" из элементов кнопкии при нажатии кнопки вызовите функцию JavaScript, которая откроет почтовый клиент и отправит вашу существующую форму:

<button name="OS_TYPE" value="OSX &amp; WINDOWS" onclick="submitMyForm()">OSX &amp; WINDOWS</button>

и создаст функцию JavaScript, которая откроет почтовый клиент и отправит вашу форму:

function submitMyForm() {
    window.open('mailto:test@example.com');
    document.getElementById("myForm").submit(); //attach an id to your form
}
...