2013-10-23 64 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

相關問題