0

1 つの「送信」ボタンで複数のフォームを送信することはできますか? もしそうなら、これを行う方法は何ですか?ありがとう。

4

1 に答える 1

2

これは厳密に言えば、web2py質問ではなく、HTML (DOM - ドキュメント オブジェクト モデル) であり、DOM をjavascript質問で操作します。

を使用すると、1 つのボタンをクリックして、2 つ (またはそれ以上) のフォームを一度に送信できますjavascript

このような:-

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

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

web2py アプリケーションで、同時に処理する必要がある 2 つの別々の URL/関数にリクエストを POST する必要がある場合、問題が発生する可能性があります。

正しいアプローチは、おそらく、フォーム オブジェクトを 1 つのフォームの一部としてフィールドセットに変更する関数を作成する必要があるということです。

django では、フォームセットはまさにこれを行い、複数のフォームをテンプレート内の 1 つの HTML フォームのみに属するフィールドセットに変換するため、元の「複数のフォーム」はフロントエンドの 1 つの単一フォームの一部になります。

このような:-

<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 つのフォームのみに戻ります。

于 2012-11-04T03:56:23.063 に答える