xslt表单字段-获取名称未知的输入

xslt表单字段-获取名称未知的输入,xslt,forms,input,Xslt,Forms,Input,更新-因为我的表达不清楚。将重试: 我有一个表单,其中包含几个动态创建的输入,如下所示: <form id="tellafriend_form" method="post" action="landingpage.aspx"> <!-- static example --> <input type="text" id="my_example" name="my_example" value="" /> <!-- dynamic part -

更新-因为我的表达不清楚。将重试:

我有一个表单,其中包含几个动态创建的输入,如下所示:

<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="{$publicationId}" value="" />
  </xsl:for-each>
</form>

提交时,如何使用xslt从输入中获取值?我可以从静态输入字段中获取,但不能从动态字段中获取,因为我不知道这些名称/ID

我知道所有$publicationId都将是大于2000但小于4000的整数。如果需要,它们可以很容易地加上一些文本作为前缀(如果数字本身就有问题的话)

首选XSLT解决方案。或者使用jQuery,如果可以的话(看到这个,这可能是另一个解决方案:)


比尔。Anders

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>

遍历所有收到的POST name:value对,并检查名称以“publication”开头的那些对


要实现这一点,您必须选择一个不在实际发布ID中出现的前置值。我在这里假设发布ID是数字的,因此任何有意义的非数字前置值(如“发布”)都是合适的。

您所说的检索是什么意思?当用户在表单字段中输入值时,XSLT已经呈现。对不起。糟糕的英语。提交表单时,登录页面(form action=“landing.aspx”)必须从表单中获取值。但由于我不知道输入字段的名称/ID,我不知道在表单发布后如何从登录页获取数据!很好的解释。我可以这样做。我刚刚想到了另一个解决方案,如果id不是数字,可以使用它:我根据给定的规则创建动态输入(为cat=2中的所有书籍创建输入)。如果登录页知道cat=2,那么它可以按照完全相同的规则提取数据(从基于cat=2中书籍的名称获取表单输入数据)。
<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>