将php sendmail功能插入弹出框中的确认按钮

时间:2015-12-30 21:44:47

标签: javascript php if-statement sendmail

我试图在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>

2 个答案:

答案 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函数。