使用web2py我试图使用ajax将数据放入我的数据库中的表中,但我需要一些帮助。
这是我正在使用的函数(它当前在数据部分中有虚拟数据,而不是从表单传递数据):
function submitData(){
$.ajax({
type: "POST",
url: "requests",
data: {
id: 1,
user_id:111,
bottle_image:'',
bottle_name:'JJjman',
bottle_description:'Lol',
request_creationDate:'2000-01-01',
request_expiryDate:'2003-08-08',
request_fulfilled:false
},
success: function(){
alert('Posted data');
}
});
}
我有一个html按钮,其功能附加到'onclick',但目前所做的只是重新加载页面而不将任何数据传递到数据库。成功警报也即将出现。
Firebug说POST确实包含了所有这些数据,但我不确定POST是否真的要去任何地方..
我是否遗漏了将此数据实际传递到数据库所需的任何步骤?或者这可能只是我的数据不是数据库的所有正确类型?
干杯球员
答案 0 :(得分:1)
简单地从浏览器发送帖子不会在服务器上执行任何操作,除非您在服务器上有代码来处理数据并将其插入数据库。
我强烈建议您仔细阅读book的相关部分,了解如何执行此操作。 Overview章节提供了一个介绍性教程,包括构建一个image blog,其中包括建模数据库表并创建表单以将记录发布到该表。
查看DAL章节,了解有关数据库建模的详细信息,有关创建与数据库表关联的表单的详细信息,请参阅SQLFORM
部分,以及ajax和{{3}部分有关使用Ajax发布表单的详细信息。
做你想做的最简单的方法就是这样:
在/models/db.py中:
db = DAL('sqlite://storage.sqlite')
db.define_table('bottle',
Field('user_id')
Field('bottle_image'),
Field('bottle_name'),
Field('bottle_description', 'text'),
Field('request_creationDate', 'date'),
Field('request_expiryDate', 'date'),
Field('request_fulfilled', 'boolean'),
format='%(bottle_name)s')
在/controllers/default.py中:
def index():
return dict()
def add_bottle():
return dict(form=SQLFORM(db.bottle).process())
在/views/default/add_bottle.load中:
{{=form}}
在/views/default/index.html:
{{extend 'layout.html'}}
{{=LOAD('default', 'add_bottle.load', ajax=True)}}
然后转到/ yourapp / default / index,您将看到一个表单,它将通过Ajax将记录发布到数据库。