我是一个简单的灵魂,有简单的需求,我正在尝试配置一个表单。我讨厌表格。
它需要 JavaScript 来传输数据,需要将包含数据的电子邮件发送到电子邮件地址,并且需要将访问者重定向到 pdf。 CGI 一直让我感到困惑,而且我不太了解 JavaScript。
我已经完成了 html,但是 post 操作和 JavaScript 快要杀了我。已经找了4个小时了。把 fork 插在我身上。我已经完成了。
最佳答案
听起来您需要验证表单,然后将其发送到服务器,然后重新验证(无法插入 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,并在 php 中设置 SMTP 服务器,但大多数服务器都有这个。 顺便说一句,请注意 PHP 现在不会重新启用表单,因此当有人提交空表单时,该表单仍会通过电子邮件发送。
关于用于 HTML 表单的 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/292256/