Я строю граненую поисковую систему, которая имеет входные данные на боковой панели (грани - это флажки) и входные данные в заголовке страницы (основное поле запроса). Все эти входные данные отправляются одновременно, когда пользователь отправляет запрос на поиск.
Единственный способ сделать эту работу - обернуть всю страницу в тег 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>
Это будет работать, кроме трех вещей:
- Мне нужно использовать другие формы на странице, как я указал выше.
- Я использую разные шаблоны django для генерации заголовка и боковой панели, благодаря чему шаблоны зависят друг от друга.
- Это настоящий беспорядок, поскольку боковая панель в действительности состоит из 100 строк, а не трех.
Есть ли более умный способ сделать это, о котором я не знаю, или создание большого HTML-кода является нормой? В таких условиях, лучше ли использовать Javascript для создания входных записей в более нормальной форме? Или это единственный вариант?
Какие-нибудь креативные решения или идеи?