Отправить элемент XML как заголовок HTTP с помощью XForms
Я совершенно новичок в XForms, поэтому, пожалуйста, потерпите меня. Я хотел бы знать, можно ли сделать следующее:
У меня есть форма HTML
<form>
<input type="text" name="search-string"/>
<input type="checkbox" name="search1" checked="checked" />Search option 1
<input type="checkbox" name="search2" checked="checked" />Search option 2
<input type="submit" />
</form>
Я хотел бы представить это в XForms и при отправке преобразовать его в элемент XML следующим образом:
<data>
<search1>my search string</search1>
<search2>my search string</search2>
</data>
search1
а также search2
элементы должны быть установлены, только если установлены соответствующие флажки, и они оба заполняются строкой из search-string
вход.
Когда data
элемент был создан, мне нужно отправить его через HTTP-запрос POST.
Можно ли сделать все это, используя только XForms или мне нужно использовать JS или что-то еще?
PS: я использую XSLTForms, если это имеет какое-либо значение.
1 ответ
Да, это можно сделать с помощью XForms без дополнительных инструкций Javascript. Вам нужно два экземпляра: один для отправки и другой для заполнения первого.
Это должно быть что-то вроде этого для модели:
<xf:model>
<xf:instance id="data">
<data xmlns="">
<search1/>
<search2/>
</data>
</xf:instance>
<xf:instance id="work">
<work xmlns="">
<b1 xsi:type="boolean"/>
<b2 xsi:type="boolean"/>
<search/>
</work>
</xf:instance>
<xf:bind nodeset="instance('data')/search1" calculate="choose(instance('work')/b1,instance('work')/search,'')"/>
<xf:bind nodeset="instance('data')/search2" calculate="choose(instance('work')/b2,instance('work')/search,'')"/>
<xf:submission ref="instance('data') method="post" resource=".........."/>
</xf:model>
-Alain