Ajax请求仅使用JSON.stringify发布数组的一部分

时间:2017-12-18 16:46:47

标签: javascript arrays json ajax

我有一个在JavaScript中更新的数组。

这是我如何启动数组...

columnArray = ["userID", "Date", "trialType", "cue", "target", "response", "accuracy", "lenAcc", "strictAcc", "fkpl", "totalTime"];
var dataArray = [];
dataArray.push(columnArray);

然后我根据发生的情况和我做的一些计算来更新数据......

dataArray.push(userID, new Date(), trialType, cue, target, response, accuracy, lenAcc, strictAcc, fkpl, totalTime);

当我使用此代码显示数组时......

document.getElementById("trial").innerHTML = dataArray;

......事情看起来很棒(格式化换行符)

userID,Date,trialType,cue,target,response,accuracy,
lenAcc,strictAcc,fkpl,totalTime,
Ad31,Mon Dec 18 2017 11:35:55 GMT-0500 (Eastern Standard 
Time),copy,hello,world,xzzvxzxvxzxcv,0,0,0,938,5001 

但是,当我使用此功能保存数据时......

function saveData(){
$.ajax({
    type: "POST",
    url: "saveData.php",
    dataType: "application/json",
    ContentType: "application/json; charset=utf-8",
    data: {"data": JSON.stringify(dataArray)},
  })
}

...我只获得标题信息(格式化的换行符)

[["userID","Date","trialType","cue","target","response","accuracy",
"lenAcc","strictAcc","fkpl","totalTime"]]

我在某处读到可能我的数组需要成为一个对象,因此我应该使用...

var dataArray = {};

......而不是......

var dataArray = [];

但是,如果我这样做,我仍然可以将dataArray视为常规数组(例如,将内容推送到最后,存储大量数据等)?

或者是否还有其他问题?

理想情况下,我希望每个"试用#34;都有一行,以便逐行格式化数组。但首先我只是想正确地写出数据。

谢谢!

解决! 代码现在有效。在我使用push()将数据附加到数组之前,我只是调用了我的Ajax保存功能。一旦我将保存函数移动到数据被推入数组后立即调用,它就会保存包含所有相关信息的文件!

1 个答案:

答案 0 :(得分:0)

我的问题已经解决了。在我用数据填充数组之前,我只是在执行saveData()。