使用Ajax将表单数据传递给PHP的问题

时间:2016-11-21 21:00:02

标签: javascript jquery html ajax

我最初有一个常规的 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 调用看起来应该是什么样的帮助表示赞赏。

1 个答案:

答案 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);
    }
});

实际上,有许多不同的方法可以实现您的目标。