JavaScript для формы HTML - PullRequest
1 голос
/ 15 ноября 2008

Я простая душа с простыми потребностями, и я пытаюсь настроить форму. Я ненавижу формы.

Для передачи данных требуется JavaScript, для отправки электронного письма с данными на адрес электронной почты и перенаправления посетителей в PDF CGI всегда сбивал меня с толку, и я не знаю много JavaScript.

Я уже сделал html, но публикация и JavaScript убивают меня. Прошло 4 часа поисков. Вставь в меня вилку. Я сделал.

Ответы [ 3 ]

1 голос
/ 15 ноября 2008

Итак, вам нужно проверить форму, а затем отправить ее на сервер, который затем повторно проверяет (javascript не может быть переадресован) и отправляет почтовый запрос на почтовый сервер.

Я бы порекомендовал PHP для сервера, который повторно проверяет форму и отправляет запрос на сервер электронной почты, потому что он прост и широко поддерживается.

Скажем, у вас есть этот HTML

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="script.js"></script>
<form id="emailForm" method="post" action="mail.php">
    <input type='text' name='firstName' id="firstName"><br>
    <input type='text' name='lastName' id='lastname'><br>
    <input type='submit' value='submit' name='submit'>
</form>

Вы можете проверить, что пользователь ввел что-то во все поля, используя javascript и jQuery. Скажем, в файле script.js у вас есть:

var formIsOkay = true;
$(document).ready( function() {
$('#emailForm').submit( function() {
    $('#emailForm input').each( function() {
         if ( this.val() == '' ) { formIsOkay = false; }
    }
    return formIsOkay;
}
}

И тогда в email.php у вас будет что-то вроде этого:

 <?php
 $to =  'email@domain.com';
 $from = 'email@domain.com';
 $subject = 'Form';
 $message = 'Hello, the following variables were supplied:<br>';
 foreach($_POST as $key => $val){
     $message .= "$key = $val<br>";
 }
 $message = wordwrap($message, 70);
 $headers  = 'MIME-Version: 1.0' . "\r\n";
 $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
 $headers .= "To: $to" . "\r\n";
 $headers .= "From: $from" . "\r\n";
 mail($to, $subject, $message, $headers);
 ?>

Для этого вам понадобится PHP на вашем сервере и настройка SMTP-сервера в php, но большинство серверов имеют это. Обратите внимание на то, что PHP сейчас не подтверждает форму, поэтому, когда кто-то отправляет пустую форму, она все равно будет отправлена ​​по электронной почте.

0 голосов
/ 15 ноября 2008

Ваша форма звучит как FormMail-форма, которая предназначена исключительно для отправки почты, ей действительно не нужен javascript, но ей, безусловно, нужно множество скрытых полей, и вся информация, которую вы особенно хотите извлечь, должна иметь свои собственные разделы / поля в виде.

Итак, в чем вопрос? -)

0 голосов
/ 15 ноября 2008

Хорошо, во-первых, нам нужно уточнить вашу формулировку. JavaScript и Java - два существенно разных языка.

Чтобы отправлять почту, вам нужно использовать любой язык, который вы используете в сочетании с SMTP-сервером, что и должно быть тем, что фактически отправляет электронную почту, а не JavaScript, который на стороне клиента.

Пример использования JavaScript для публикации на SMTP-сервере можно найти здесь (хотя я бы не рекомендовал этот метод, так как ActiveX является эксклюзивным IE): http://www.ostrosoft.com/smtp_component/smtp_javascript.asp

В конечном счете, для JavaScript лучший способ, который вы бы использовали, - это просто отправлять сообщения на сервер не-SMTP, который затем отправляет данные на сервер SMTP.

Если вы на самом деле используете Java, есть дополнительная библиотека, которую вы можете добавить, называемая JavaMail, чтобы упростить отправку почты, хотя, опять же, вам нужно общаться с SMTP-сервером.

Пример JavaMail можно найти здесь: http://www.javapractices.com/topic/TopicAction.do?Id=144

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...