我需要在客户端临时存储数据,以允许用户添加,编辑或删除项目,而无需为每个操作查询服务器;当用户完成添加项目并点击添加按钮时,该列表将被发送到服务器以永久保存。
这image描述了我想要实现的目标。 我知道我必须在JavaScript中使用数组,但我不知道如何创建一个用于存储对象(在本例中详细信息,其中包含:id,price和description)。
我希望你能帮助我。 提前致谢。 PS:我正在使用JSP而且...对不起我的英语
答案 0 :(得分:12)
当然,因为它是一个表,所以有一个对象数组是有意义的。请注意,对象用大括号括起来,数组用括号括起来:
var myArray = []; // Initialize empty array
var myObject = {}; // Initialize empty object
这应该可以满足您的需求:
// Initialize variables
var newEntry, table = [];
// Create a new object
newEntry = {
id: '',
price: '',
description: ''
};
// Add the object to the end of the array
table.push(newEntry);
与此相同:
// Initialize array
var table = [];
// Create object and add the object to the end of the array
table.push({
id: '22',
price: '$222',
description: 'Foo'
});
您现在可以访问以下属性: 表[0] .ID; //'22'
在现代浏览器中,如果您希望数据在会话中保持不变(如cookie),您可以使用sessionStorage或localStorage对象。
如果要将数据发送到服务器,您将通过网络发送表格的JSON版本:
var data = JSON.stringify(table);
答案 1 :(得分:5)
您可以使用对象文字非常轻松地创建自定义Detail对象的数组:
var details = [];
details.push({id:'abc1234', price:999.99, description:'Tesla Roadster'});
details.push({id:'xyz5678', price:129.99, description:'Land Rover'});
然后,当用户点击“添加”时,您可以将数据发布到服务器。
答案 2 :(得分:1)
JSON听起来不错。