【发布时间】:2020-02-05 10:12:48
【问题描述】:
我不知道 php 是如何工作的。我对每个逻辑都使用 JavaScript,但它仅供客户端使用,而我认为 php 用于服务器。我收到 405(不允许的方法)错误。
如何使用来自 html 表单的输入数据向自己发送电子邮件(例如:“example@gmail.com”)?
//** IF u need it **
// Working Contact Form
$('#contact-form').submit(function() {
var action = $(this).attr('action');
$("#message").slideUp(750, function() {
$('#message').hide();
$('#submit').before('').attr('disabled', 'disabled');
$.post(action, {
name: $('#name').val(),
email: $('#email').val(),
comments: $('#comments').val(),
},
function(data) {
document.getElementById('message').innerHTML = data;
$('#message').slideDown('slow');
$('#cform img.contact-loader').fadeOut('slow', function() {
$(this).remove()
});
$('#submit').removeAttr('disabled');
if (data.match('success') != null) $('#cform').slideUp('slow');
}
);
});
return false;
});
// Example starter JavaScript for disabling form submissions if there are invalid fields
(function() {
'use strict'
window.addEventListener('load', function() {
// Fetch all the forms we want to apply custom Bootstrap validation styles to
var forms = document.getElementsByClassName('needs-validation')
// Loop over them and prevent submission
Array.prototype.filter.call(forms, function(form) {
form.addEventListener('submit', function(event) {
console.log("test")
if (form.checkValidity() === false) {
event.preventDefault()
event.stopPropagation()
}
form.classList.add('was-validated')
}, false)
})
}, false)
}())
//Ignore CSS, doesnt matter
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form method="post" action="php/contact.php" name="contact-form" id="contact-form">
<div class="row">
<div class="col-lg-6">
<div class="row">
<div class="col-lg-12 col-md-6">
<div class="form-group">
<input name="name" id="name" type="text" class="form-control border rounded" placeholder="Name :">
</div>
</div>
<!--end col-->
<div class="col-lg-12 col-md-6">
<div class="form-group">
<input name="email" id="email" type="email" class="form-control border rounded" placeholder="Email :">
</div>
</div>
<!--end col-->
<div class="col-lg-12">
<div class="form-group">
<input name="subject" id="subject" class="form-control border rounded" placeholder="Betreff :">
</div>
</div>
<!--end col-->
</div>
<!--end row-->
</div>
<!--end col-->
<div class="col-lg-6">
<div class="form-group">
<textarea name="comments" id="comments" rows="4" class="form-control border rounded" placeholder="Nachricht :"></textarea>
</div>
</div>
<!--end col-->
</div>
<!--end row-->
<div class="row">
<div class="col-sm-12 text-right">
<input type="submit" id="submit" name="send" class="submitBnt btn btn-pill btn-custom" value="Senden">
<div id="simple-msg"></div>
</div>
<!--end col-->
</div>
<!--end row-->
</form>
<!--end form-->
我正在使用带有 LiveServer 扩展的 VS-Code 来创建网站。我可以在那里使用 php 还是有什么问题?顺便说一句,我认为 JS 仍然有问题..?!
如果有人知道如何提供帮助,请发表评论!谢谢。
【问题讨论】:
-
@MarkOverton 不,它没有。我已经看过这个帖子了。我的问题是,我收到 405(不允许的方法)错误,我不知道如何解决。
-
那么你发送
$.post请求的地址不允许POST方法。而是尝试GET方法,或允许POST。但是,如果我们不能查看您的 PHP,就很难看到发生了什么。 -
@EmielZuurbier 谢谢你的提示。问题是,我以前从未使用过 php。我不知道如何使用它,但在他们说的其他一些 stackoverflow.com 网站上,我可以使用它:
<?php $to = 'test@gmail.com'; $subject = 'the subject'; $message = 'hello'; $headers = 'From: webmaster@example.com' . "\r\n" . 'Reply-To: webmaster@example.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($to, $subject, $message, $headers); ?>这就是我添加 js 的原因,以便您可以告诉我如何正确编写它。
标签: javascript php html forms