【发布时间】:2019-02-08 13:34:27
【问题描述】:
我正在使用 ajax 将表单数据发送到服务器,我在 $_POST 数组中接收所有数据服务器端,但来自提交按钮的数据除外。
HTML
<form id="mainForm" action="#" class="form-inline" enctype="multipart/form-
data">
...
<div id="success"></div>
<button type="submit" id="makegocard" name="makegocard" value="clicked"
form="mainForm" class="btn btn-primary">Make My WebGoCard</button>
<div id="preview"></div>
<button type="submit" id="previewgocard" name="previewgocard"
form="mainForm" class="btn btn-primary">Preview My WebGoCard</button>
</form>
javascript JQuery AJAX:
$("#mainForm input,#mainForm textarea,#mainForm
button").jqBootstrapValidation({
//preventSubmit: true,
submitError: function($form, event, errors) {},
submitSuccess: function($form, event) {
//$("#btnSubmit").attr("disabled", true);
event.preventDefault();
var mainFormData = new FormData(event.target);
$.ajax({
url: "./addUserToDB.php",
type: "POST",
data: mainFormData,
cache: false,
contentType: false,
processData: false,
success: function(pResp) {
$("#btnSubmit").attr("disabled", false);
$('#success').html("<div class='alert alert-success'>");
$('#success > .alert-success').html("<button type='button'
class='close' data-dismiss='alert' aria-
hidden='true'>×").append("</button>");
$('#success > .alert-success').append(pResp);
$('#success > .alert-success').append('</div>');
//$('#mainForm').trigger("reset");
},
error: function(pError) {
$('#success').html("<div class='alert alert-danger'>");
$('#success > .alert-danger').html("<button type='button'
class='close' data-dismiss='alert' aria-
hidden='true'>×").append("</button>");
$('#success > .alert-danger').append(pError);
$('#success > .alert-danger').append('</div>');
//$('#mainForm').trigger("reset");
},
})
},
filter: function() {
return $(this).is(":visible");
},
});
PHP:
echo print_r($_POST);
if(isset($_POST['makegocard'])){
...
}
echo 显示除了按钮数据和 if 语句总是返回 false 之外的所有内容?
任何帮助将不胜感激。
【问题讨论】:
-
什么版本的jQuery?
-
还有 event.target 不是按钮吗?也许试试
var mainFormData = new FormData(document.getElementById("mainForm")); -
感谢您的帮助,它是 jQuery v3.3.1,不幸的是,我在进行更改后得到了相同的结果。
-
由于 event.preventDefault(); 你必须将被点击的按钮添加到 formdata
-
谢谢!那行得通:)
标签: javascript php html ajax