如何使用按钮运行单独的 PHP 文件(不是 ) 中的提交按钮<form>



我有这个button它不是一个submit按钮,只是一个regualr按钮,它不在<form>标签内。

<button type="button" id="send" class="btn btn-outline-blue btn-sm">Send</button>      

当我单击send按钮时,我需要执行一个单独的PHP文件(send.php

如果buttontype="submit"并且位于<form>内,我知道该怎么做

但是在这种情况下,我想不出该怎么做。请帮忙...

不要使用按钮。使用常规链接。使用 CSS 使其看起来随心所欲。

或者,将其设置为提交按钮并将其放入表单中。表单中不需要任何其他内容。如果您愿意,可以将表单样式设置为display: inline

或者,使用 JavaScript 添加一个单击事件处理程序,该处理程序将新值分配给 location

或者,使用 JavaScript 添加一个点击事件处理程序,该处理程序使用 XMLHttpRequest 对象或 fetch 对象在不离开页面的情况下发出 HTTP 请求。

您可以使用 ajax 在按钮单击事件时调用 php 类

这是我是如何做到的:

经过一些研究,我最终编写了使用ajaxjavascript代码

这是我的HTML

<div class="md-form">
    <i class="fa fa-user prefix grey-text"></i>
    <input type="text" id="subject" name="subject" class="form-control ">
    <label for="form-name">subject</label>
</div>
<div class="md-form">
    <i class="fa fa-envelope prefix grey-text"></i>
    <input type="text" name="to" id="to" class="form-control ">
    <label for="form-email">Your email</label>
</div>
<div class="md-form">
    <i class="fa fa-tag prefix grey-text"></i>
    <input type="text"  name="message" id="message" class="form-control">
    <label for="form-Subject">Message</label>
</div>

这是我PHP文件

<?php
    $mailto=$_POST['to'];
    $mailSub=$_POST['subject'];
    $mailMSG=$_POST['message'];
    require 'PHPMailer-master/PHPMailerAutoload.php';
    $mail = new PHPMailer();
    $mail ->IsSmtp();
    $mail ->SMTPDebug=0;
    $mail ->SMTPAuth=true;
    $mail ->SMTPSecure='tls';
    $mail ->Host='smtp.gmail.com';
    $mail ->Port= 587; //465; //or 587
    $mail ->IsHTML(true);
    $mail ->Username="myemail";
    $mail ->Password="password";
    $mail ->SetFrom("email");
    $mail ->Subject=$mailSub;
    $mail ->Body=$mailMSG;
    $mail ->AddAddress($mailto);
    if(!$mail ->Send() || !isset($mailto) || trim($mailto)=='' || !isset($mailSub) || trim($mailSub)=='' || !isset($mailMSG) || trim($mailMSG)=='' ){       
                echo '<script language="javascript">';
        echo 'alert("Mail not Sent!!!!")';
        echo '</script>';
    }else{
        echo '<script language="javascript">';
        echo 'alert("message successfully sent")';
        echo '</script>';           
    }
?>

这是我HTML文件中的javascript...

   <script type="text/javascript">
        $(document).ready(function () {
            $("#send").click(function () {
                $.ajax({
                    url: 'SendEmail.php',
                    type: 'POST',
                    dataType: "json",
                    data: {
                        to: $('#to').val(),
                        subject: $('#subject').val(),
                        message: $('#message').val()
                    }
                }).done(function (data) {
                    alert(JSON.stringify(data));                        
                });
            });
        });
    </script>

好吧,希望你能理解这一点。谢谢大家帮助:)

最新更新