2013-10-23 38 views
0

使用web2py我想使用ajax将数据放入我的数据库中的表中,但我需要一点帮助。使用web2py,jQuery和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',但目前它所做的只是重新加载页面,而不是将任何数据传递到数据库。成功警报也即将到来。

萤火虫是说,POST确实包含所有的数据,但我不知道,如果POST实际上是去任何地方..

我缺少实际这个数据传递到数据库所需的任何步骤?或者这可能只是因为我的数据并不是数据库的所有类型?

干杯家伙

回答

1

简单地从浏览器发送后不会做任何服务器上,除非你的服务器来处理数据,并将其插入到数据库上有一些代码。

我强烈建议您仔细阅读book的相关部分,以了解如何执行此操作。 Overview一章提供了一个入门教程,其中包括构建一个image blog,其中涉及建模数据库表和创建表单以将记录发布到该表。

审查造型上你的数据库,在SQLFORM有关创建与数据库表相关表格的详细信息,并在部分上ajaxcomponents关于使用Ajax发布形式的细节部分细节DAL章。

做你想做的是这样的事情什么最简单的方法:

在/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()) 

In /views/default/add_bottle.load:

{{=form}} 

在/views/default/index.html:

{{extend 'layout.html'}} 

{{=LOAD('default', 'add_bottle.load', ajax=True)}} 

然后去/ yourapp /默认/指数,你会看到一个表格,其中将发布记录,通过Ajax数据库。

+0

非常非常丰富 - 谢谢堆,安东尼:) – Sup3rSloth

相关问题