2012-10-07 118 views
1

我想填充產品名稱的web2py數據庫下拉導航欄。該表中db.py定義,像這樣:如何使從web2py數據庫下拉菜單

db.define_table('product', 
Field('prodid', unique=True), 
Field('name'), 
Field('stock', 'integer')) 

我已經做了一些調查,發現的方式從SQL數據庫用PHP做堆,但我一直沒能找到任何關於從web2py中的本地數據庫中檢索。

任何幫助,將不勝感激。

回答

0

試試這個:

{{ rows = db().select(db.product.ALL) }} 
{{if len(rows):}} 
<ul> 
{{ for r in rows: }} 
    <li> 
    <a href="yourlink/{{=r.id}}"> 
     {{=r.name}} 
    </a> 
    </li> 
{{pass}} 
</ul> 
{{pass}} 
0

這是嚮導又發表了(具有在「格式化」一個調整)的代碼:

######################################## 
db.define_table('t_products', 
    Field('f_prodid', type='string', 
      label=T('Prodid')), 
    Field('f_name', type='string', 
      label=T('Name')), 
    Field('f_stock', type='string', 
      label=T('Stock')), 
    format='%(f_name)s', 
    migrate=settings.migrate) 


######################################## 
db.define_table('t_orders', 
    Field('f_orderid', type='string', 
      label=T('Orderid')), 
    Field('f_product_name', type='reference t_products', 
      label=T('Product Name')), 
    format='%(f_orderid)s', 
    migrate=settings.migrate) 

的關鍵詞是在第二個表「參考」,並在該「格式」第一。

+0

所以如果IM正確settings.migrate允許我使用PHP正確的訪問此表作爲SQL表?還是我看着這一切都錯了? – Brandon

+0

AFAIK settings.migrate負責模型中的更改,在此示例中這不是強制性的。如果你創建了數據庫讓我們說在一個MySQL服務器(默認web2py數據庫是sqlite),那麼你可以從PHP訪問相同的數據庫(雖然我不知道你爲什麼會那樣做)。 – dirkk0

+0

以及我需要一次檢索一個產品名稱,以便在html文件中填充下拉菜單。你會推薦什麼做最好的方法呢? – Brandon