我有这个button
它不是一个submit
按钮,只是一个regualr按钮,它不在<form>
标签内。
<button type="button" id="send" class="btn btn-outline-blue btn-sm">Send</button>
当我单击send
按钮时,我需要执行一个单独的PHP文件(send.php
如果button
是type="submit"
并且位于<form>
内,我知道该怎么做
但是在这种情况下,我想不出该怎么做。请帮忙...
不要使用按钮。使用常规链接。使用 CSS 使其看起来随心所欲。
或者,将其设置为提交按钮并将其放入表单中。表单中不需要任何其他内容。如果您愿意,可以将表单样式设置为display: inline
。
或者,使用 JavaScript 添加一个单击事件处理程序,该处理程序将新值分配给 location
。
或者,使用 JavaScript 添加一个点击事件处理程序,该处理程序使用 XMLHttpRequest
对象或 fetch
对象在不离开页面的情况下发出 HTTP 请求。
您可以使用 ajax 在按钮单击事件时调用 php 类
这是我是如何做到的:
经过一些研究,我最终编写了使用ajax
的javascript
代码
这是我的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>
好吧,希望你能理解这一点。谢谢大家帮助:)