landingpage.aspx
не сможет определить соответствующие значения POST, поскольку вы никогда не знаете заранее имя элемента ввода.
Это говорит о том, что вам нужно дополнить имя некоторыми дополнительными данными, которые вы знаете заранее. То есть, добавьте дополнительную информацию к имени, которое вы можете проверить позже.
Хороший выбор - добавить имена таким образом, чтобы принимающий скрипт мог (автоматически) интерпретировать их как массив. Тогда легче будет разобраться в принимающем скрипте. Один из таких способов, зависящий от того, что позволяет принимающий язык / структура, это:
<form id="tellafriend_form" method="post" action="landingpage.aspx">
<!-- static example -->
<input type="text" id="my_example" name="my_example" value="" />
<!-- dynamic part -->
<xsl:for-each select="something">
<xsl:variable name="publicationId" select="@id"/>
<input type="text" id="{$publicationId}" name="publication[{$publicationId}]" value="" />
</xsl:for-each>
</form>
Попробуйте это и проверьте значение publication
в данных POST. Вы можете найти это массив или hashmap. Чтобы это работало, вам нужно будет использовать правильное представление для массива данных в форме в том, что касается принимающего языка.
Другой вариант - дополнить входные имена известным идентификатором, а затем, в принимающем скрипте, проверить все имена полей POST для соответствующего идентификатора. Например:
<form id="tellafriend_form" method="post" action="landingpage.aspx">
<!-- static example -->
<input type="text" id="my_example" name="my_example" value="" />
<!-- dynamic part -->
<xsl:for-each select="something">
<xsl:variable name="publicationId" select="@id"/>
<input type="text" id="{$publicationId}" name="publication{$publicationId}" value="" />
</xsl:for-each>
</form>
Выполните итерацию по всем полученным парам POST имя: значение и проверьте, нет ли имени, начинающегося с «публикации».
Чтобы это работало, вы должны выбрать значение предоплаты, которое не встречается в фактическом идентификаторе публикации. Здесь я предполагаю, что идентификатор публикации является числовым, поэтому целесообразно использовать любое значимое нечисловое значение предварения (например, «публикация»).