2012-11-04 106 views

回答

2

這嚴格來說,不是web2py的問題,而是一個HTML(DOM - 文檔對象模型)和操縱DOM的javascript問題。

您可以通過使用javascript一次提交2個(或多個表單),單擊一個按鈕。

像這樣: -

<form id="id1" ...> ...</form> 
<form id="id2" ...> ...</form> 

<button onclick="document.getElementById('id1').submit();document.getElementById('id2').submit();" /> 

你可能會遇到問題時,你必須要求你的web2py應用程序,它現在需要處理的同時發佈到兩個獨立的網址/功能?

正確的做法可能是您可能需要編寫一個函數,將表單對象作爲單個表單的一部分更改爲字段集。

在django中,表單集完成這一操作,並將多個表單轉換爲屬於模板中只有一個HTML表單的字段集,因此原始「多個表單」成爲前端單一表單的一部分。

像這樣: -

<form method="post" action=""> 
    {{ formset.management_form }} 
    {% for form in formset %} 
     {{ form.id }} 
     <ul> 
      <li>{{ form.title }}</li> 
      {% if formset.can_delete %} 
       <li>{{ form.DELETE }}</li> 
      {% endif %} 
     </ul> 
    {% endfor %} 
</form> 

web2py: -

http://www.web2pyslices.com/slice/show/1458/two-forms-on-one-page-with-custom-forms-to-update-record

def new(): 
    form = SQLFORM.factory(db.contact,db.groups) 

    if form.accepts(request.vars): 
     _id_user = db.contacts.insert(**db.contacts._filter_fields(form.vars)) 

     form.vars.contact = _id_user 

     id = db.groups.insert(**db.groups._filter_fields(form.vars)) 

     response.flash = 'User registered successfully' 
    return locals() 

返回到您的web2py模板1單唯一形式。

+0

謝謝,卡爾文。對不起,如果問題是模糊的。我想在web2py網格的每個標題中放置一個表單 - 替代方案似乎是編輯網格類本身的代碼。我通過創建一堆表單來解決這個問題,第一個表單包含一個提交按鈕和一些隱藏的輸入字段,其他表單用輸入字段。當按下第一個表單上的提交按鈕時,其他表單的輸入字段的值將被複制到jQuery的第一個表單中。只提交表格,並將所有其他表格的值提交給它。 – Lamps1829

+0

更新你的問題(與HTML代碼片段,Python代碼片段等),所以其他人可能會幫助...和你的問題不會被關閉爲「不是一個真正的問題」:-) –