我使用 phpmailer 創建了聯系表單。并且,它正在工作并且可以正常發送電子郵件。但是,它確實在 php 文件中重定向,然后顯示成功消息。我想在同一個聯系表單 html 頁面上顯示消息。并且,我使用下面的 ajax jquery 來實現這一點。但是,郵件不發送。并在同一表單 html 頁面上收到以下消息。文檔有問題!我該如何解決這個問題?JS代碼:(function ($) {? ? "use strict";? ? var form = $('#contact-form'); // contact form? ? var submit = $('#submit-btn'); // submit button? ??? ? ? ? ? ? // form submit event? ? ? ? ? ? form.on('submit', function(e) {? ? ? ? ? ? ? ? e.preventDefault(); // prevent default form submit? ? ? ? ? ? ? ? $.ajax({? ? ? ? ? ? ? ? ? ? url: 'php/mail.php', // form action url? ? ? ? ? ? ? ? ? ? type: 'POST', // form submit method get/post? ? ? ? ? ? ? ? ? ? dataType: 'html', // request type html/json/xml? ? ? ? ? ? ? ? ? ? data: form.serialize(), // serialize form data? ? ? ? ? ? ? ? ? ? beforeSend: function() {? ? ? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ? ? ? ? ? ? submit.attr("disabled", "disabled");? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ? ? ? ? ? ? var loadingText = '<span role="status" aria-hidden="true" class="spinner-border spinner-border-sm align-self-center mr-2"></span>Sending.....'; // change submit button text? ? ? ? ? ? ? ? ? ? ? ? if (submit.html() !== loadingText) {? ? ? ? ? ? ? ? ? ? ? ? ? ? submit.data('original-text', submit.html());? ? ? ? ? ? ? ? ? ? ? ? ? ? submit.html(loadingText);? ? ? ? ? ? ? ? ? ? ? ? }? ? ? ? ? ? ? ? ? ? },? ? ? ? ? ? ? ? ? ? success: function(data) {? ? ? ? ? ? ? ? ? ? ? ? //$('.alert-dismissible').remove();? ? ? ? ? ? ? ? ? ? ? ? submit.before(data).fadeIn(); // fade in response data?? ? ? ? ? ? ? ? ? ? ? ? form.trigger('reset'); // reset form? ? ? ? ? ? ? ? ? ? ? ? submit.html(submit.data('original-text'));// reset submit button text? ? ? ? ? ? ? ? ? ? ? ? submit.removeAttr("disabled", "disabled");? ? ? ? ? ? ? ? ? ? },? ? ? ? ? ? ? ? ? ? error: function(e) {? ? ? ? ? ? ? ? ? ? ? ? alert('error');? ? ? ? ? ? ? ? ? ? }? ? ? ? ? ? ? ? });? ? ? ? ? ? });})(jQuery);
2 回答

瀟瀟雨雨
TA貢獻1833條經驗 獲得超4個贊
我遇到了同樣的問題,我用帶有隨機名稱的表單中的隱藏輸入來解決,例如:
<input?type="hidden"?name="test">
然后在 php 文件中:
if(isset($_POST['test']))?{
工作中,問題的出現是因為form.serialize()
或new FormData()
不使用提交按鈕。

楊魅力
TA貢獻1811條經驗 獲得超6個贊
您必須刪除,action="php/mail.php" method="post"
因為這是由 jQuery 處理的,您必須添加一個隱藏的輸入,例如<input type="hidden" name="iamhidden" />
表單,然后將其替換if(isset($_POST['submit']))
為if(isset($_POST['iamhidden']))
- 2 回答
- 0 關注
- 158 瀏覽
添加回答
舉報
0/150
提交
取消