我最初有一个常规的 HTML 表单,提交通过按钮输入的数据,将用户重定向到 PHP 代码页运行代码,一切正常。
由于现在所有内容都已确认正常工作,我需要使用 Ajax 将表单中的变量传递给 PHP ,而不是将用户保留在原始页面上。
除了我在下面的函数中使用的任何 Ajax 请求之外,我的所有代码都会检出。该函数正确地从表单中获取所有变量,但无论我使用什么形式的 Ajax 或$.post
都无法传递任何内容。
我正在尝试将所有数据传递给http://localhost/send-email.php
并通过弹出窗口响应用户,包括来自 PHP 代码的回应响应。
src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"
function capacity(){
var fullname = document.getElementById("fullname").value;
var time = document.getElementById("time").value;
var aux = document.getElementById("aux").value;
var issue = document.getElementById("issue").value;
var issueid = document.getElementById("issueid").value;
var reason = document.getElementById("reason").value;
}
就像我说的那样,我阅读了关于 Ajax 的所有文档,并且在这里有很多例子,但我无法解决任何问题。对我的 Ajax 调用看起来应该是什么样的帮助表示赞赏。
答案 0 :(得分:1)
您可以通过几种不同的方式在后端进行POST。
方法1(从表单中POST序列化数组) - jQuery.post()
$.post('/send-email.php', $('form').serializeArray(), function(response) {
alert(response);
});
方法2(结构对象和POST对象) - jQuery.post()
var formObject = {
fullname: $('#fullname').val(),
time: $('#time').val(),
aux: $('#aux').val(),
issue: $('#issue').val(),
issueid: $('#issueid').val(),
reason: $('#reason').val()
};
$.post('/send-email.php', formObject, function(response) {
alert(response);
});
方法3(使用AJAX从表单开始序列化数组) - jQuery.ajax()
$.ajax({
method: 'POST',
url: '/send-email.php',
data: $('form').serializeArray(),
}).done(function(response) {
alert(response);
});
方法4(使用AJAX发布表单数据) - jQuery.ajax() - FormData Objects
var formData = new FormData();
formData.append('fullname', $('#fullname').val());
formData.append('time', $('#time').val());
formData.append('aux', $('#aux').val());
formData.append('issue', $('#issue').val());
formData.append('issueid', $('#issueid').val());
formData.append('reason', $('#reason').val());
$.ajax({
url: '/send-email.php',
dataType: 'json',
contentType: false,
processData: false,
data: formData,
type: 'POST',
success: function(response) {
alert(response);
}
});
实际上,有许多不同的方法可以实现您的目标。