我试图在php中使用sendmail函数抛出一个弹出框。我已经得到了sendmail功能和弹出单独工作。但是我还没能弄清楚如何以正确的方式连接sendmail。下面是我最后一个工作的git版本。任何帮助都会很精彩。
{
<tr>
<th align="center">Instrument Serial Number:</th>
<td align="left"><input type="text" class="cInstTravText" name="SerialNumber" id="idSerialNumber"/></td>
<button onclick="drop_check()">comfirm</button>
<p id="drop_check"></p>
<script>
function sendEmail()
{
$to = 'jonsrod1992@gmail.com';
$subject = 'Test email using PHP';
$message = "test";
//$message = 'hello world.\n\n this is a test for functionality\n\n this is the first try\n place instrument serial Number here--> '<$modelNumber>'<-- there.';
$headers = 'From: jonr@twobtech.com' . "\r\n" . 'Reply-To: jonr@twobtech.com' . phpversion();
mail($to, $subject, $message, $headers, '-fwebmaster@example.com');
}
function drop_check() {
var x;
if (confirm("transfer and send email!") == true) {
x = "transfered and email sent!";
} else {
x = "You pressed Cancel!";
}
document.getElementById("drop_check").innerHTML = x;
}
</script>
</tr>
答案 0 :(得分:1)
你正在尝试的方法不会起作用。页面上的php首先运行(服务器端),然后使用JavaScript触发弹出窗口。这意味着您需要将响应从弹出窗口发送到另一个php页面,然后处理sendmail。您可以通过表单提交中的POST来执行此操作,或者更好的是,使用AJAX调用,这样(在脚本标记之间,最好是在页面的顶部或底部,而不是在HTML的中间):
if (confirm("transfer and send email!")) {
//if needed, get values from one or more HTML inputs like so:
var stuff = $('#someInputId').val();
$.ajax({
type: "POST",
url: "sendmail.php",
data: { data: stuff } //if you don't need to send any data from your HTML elements this can be ommitted
}).success(function() {
//optional: let the user know email was sent
});
}
然后您将sendmail代码放在sendmail.php中。如果您在AJAX调用中发送任何数据,则可以从$ _POST中检索它。 sendmail.php看起来像:
$body = isset($_POST['stuff']) ? $_POST['stuff'] : 'no stuff';
$to = 'jonsrod1992@gmail.com';
$subject = 'Test email using PHP';
$headers = 'From: jonr@twobtech.com' . "\r\n" .
'Reply-To: jonr@twobtech.com' . "\r\n" .
"MIME-Version: 1.0\r\n" .
"Content-Type: text/html; charset=ISO-8859-1\r\n";
mail($to,$subject,$body,$headers);
答案 1 :(得分:0)
也许我错过了一些东西,但是......看起来你可能只想把PHP扔进你的javascript。那不行。此外,如果这只是奇怪的重新格式化代码,则不会调用sendEmail函数。