Javascript 使用JSON存储多个表单条目
我正在尝试创建一个记录笔记的web应用程序,它将使用HTML5本地存储在客户端存储笔记。我认为JSON是实现这一点的方法,但不确定如何实现 我有一个带有标题和文本区域的简单表单。有没有一种方法可以让我提交表单并存储输入的详细信息以及几个“注释”,然后再将它们列出Javascript 使用JSON存储多个表单条目,javascript,json,html,local-storage,Javascript,Json,Html,Local Storage,我正在尝试创建一个记录笔记的web应用程序,它将使用HTML5本地存储在客户端存储笔记。我认为JSON是实现这一点的方法,但不确定如何实现 我有一个带有标题和文本区域的简单表单。有没有一种方法可以让我提交表单并存储输入的详细信息以及几个“注释”,然后再将它们列出 我不熟悉Javascript和JSON,希望您能提供帮助。我编写了一个与实体框架类似的库。我会把它以后,你可以跟我在那里或与我联系,以获得源代码现在。然后您可以编写js代码,如: var DemoDbContext = function
我不熟悉Javascript和JSON,希望您能提供帮助。我编写了一个与实体框架类似的库。我会把它以后,你可以跟我在那里或与我联系,以获得源代码现在。然后您可以编写js代码,如:
var DemoDbContext = function(){ // define your db
nova.data.DbContext.call(this);
this.notes=new nova.data.Repository(...); // define your table
}
//todo: make DemoDbContext implement nova.data.DbContext
var Notes = function(){
this.id=0; this.name="";
}
//todo: make Note implement nova.data.Entity
如何查询数据
var notes = new DemoDbContext().notes.toArray(function(data){});
如何向数据库添加注释
var db = new DemoDbContext();
db.notes.add(new Note(...));
db.saveChanges(callback);
根据要存储的信息的复杂性,您可能不需要JSON 您可以在HTML5中使用
localStorage
的setItem()
方法在客户端保存密钥/值对。使用此方法只能存储字符串值,但如果笔记的结构不太复杂,这可能是最简单的方法。假设这是您正在使用的某个HTML:
<input type="text" id="title"></input>
<textarea id="notes"></textarea>
您可以使用localStorage.getItem()
来检索这些值
我创建这些方法是为了向您展示这些方法是如何工作的(尽管没有使用与上面完全相同的代码;这一个依赖于keyup事件)
我可以看出,您可能希望使用JSON的唯一原因是,如果您需要一个具有注释深度的结构。例如,您可能希望附加注释,并将其放入如下结构中:
{
'title': {
'text':
'date':
}
'notes': {
'text':
'date':
}
}
那就是JSON。但是请记住,
localStorage.setItem()
方法只接受字符串值,要做到这一点,您需要将对象转换为字符串,然后在使用localStorage.getItem()
检索时将其转换回。方法JSON.stringify
将执行对象到字符串的转换,JSON.parse
将执行相反的操作。但正如我所说的,这种转换意味着额外的代码,只有当您的笔记需要如此复杂时才真正值得
1> 你可以在HTML页面上创建一个函数,并调用ajax和post数据。
这里必须使用$(“#txtboxid”).val()。获取价值并发布它
2> 使用knockoutjs进行双向绑定,并调用ajax
下面是调用web应用程序的简单代码。使用ajax调用
var params = { "clientID": $("#txtboxid") };
$.ajax({
type: "POST",
url: "http:localhost/Services/LogisticsAppSuite.svc/Json/GetAllLevelSubClients",
contentType: 'application/json',
data: JSON.stringify(params),
dataType: 'json',
async: false,
cache: false,
success: function (response) {
},
error: function (ErrorResponse) {
}
您退房了吗?这是完整的样本:
var params = { "clientID": $("#txtboxid") };
$.ajax({
type: "POST",
url: "http:localhost/Services/LogisticsAppSuite.svc/Json/GetAllLevelSubClients",
contentType: 'application/json',
data: JSON.stringify(params),
dataType: 'json',
async: false,
cache: false,
success: function (response) {
},
error: function (ErrorResponse) {
}