因此,当我提交表单时,我没有收到任何标题数据。我已经完成了这种类型的提交十亿次(当然比喻),但仍然有可能我错过了一些东西。思考?代码如下:
$('#app-submit').click(function(e){
e.preventDefault();
validate();
var data = [];
var required = [];
var questions = [];
var errors = 0;
$('#application-form :input:not(:radio):not(:button)').each(function(){
name = $(this).attr('id');
val = $(this).val();
data[name] = val;
if($(this).closest('div').hasClass('has-error')){
errors++;
}
});
$('#application-form .not-empty').each(function(){
name = $(this).attr('id');
val= $(this).val();
required[name] = val;
});
for(var i = 1; i < 12; i++){
name = 'q'+i;
val = $('input[name="q'+i+'"]:checked').val();
if($('input[name="q'+i+'"]').closest('div').hasClass('has-error')){
errors++;
}
questions[name] = val;
}
if(!errors){
$.ajax({
url : 'assets/server/submitApp.php',
type : 'POST',
data : data,
dataType : 'JSON',
success : function(data){
if(!data.errors){
$('#application-holder').html(data.message);
}else{
alert(data.message);
}
}
});
}
});
注意:
HTTP标头没有显示在控制台中,只是为了验证我没有获取数据,我做了var_dump($_REQUEST)
并且它也显示为空
更新:我编辑了代码,只提交了我构建的一个数组,但仍然没有发送任何数据。事件虽然在我提交ajax调用之前,如果我放置一个console.log(数据),它将显示该数组确实填充了数据。
答案 0 :(得分:1)
您正在将数组传递给data
。
如果这样做,那么数组必须使用标准数字索引包含一系列具有name
和value
属性的对象。
你不是那样做的。
修改数组的唯一时间是向它添加命名属性,就好像它是普通对象一样。
首先使用普通对象。
var data = [];
应该是:
var data = {};
对象应具有命名属性。数组不是,它们用于顺序数据。