サイドバー (ファセットはチェック ボックス) に入力があり、ページのヘッダー (メイン クエリ ボックス) に入力があるファセット検索システムを構築しています。ユーザーが検索を送信すると、これらすべての入力が同時に送信されます。
これを機能させるために考えられる唯一の方法は、ページ全体を HTML フォーム タグでラップすることです。次の疑似 html のようなもの:
<form>
<div id='header'>
<logo/>
<input id='q'/>
<!-- a bunch more stuff -->
</div>
<div id='sidebar'>
<div id='sidebar-facets-subsection'>
<input id='facet1'/>
<input id='facet2'/>
<input id='facet3'/>
<!-- a bunch more stuff -->
</div>
<div id='sidebar-form-subsection'>
<form id='unrelated-form'>
<input id='unrelated-input-1'/>
<input id='unrelated-input-2'/>
</form>
</div>
</div>
<!-- a bunch more stuff -->
</form>
これは、次の 3 つの点を除いて機能します。
- 上で示したように、ページで他のフォームを使用する必要があります。
- さまざまな django テンプレートを使用してヘッダーとサイドバーを生成し、テンプレートが相互に依存するようにします。
- サイドバーは実際には 3 行ではなく約 100 行あるため、これは非常に混乱しています。
私が気付いていない、または巨大な HTML フォームを作成するのが標準であるより賢い方法はありますか? このような状況では、Javascript を使用して入力エントリをより通常の形式で生成する方がよいでしょうか? それともそれが唯一の選択肢ですか?
創造的な解決策やアイデアはありますか?