0

我的后端接受逗号分隔的 id 值“11,12,13”。在前端,我有一个允许多项选择并发布以下内容的检查列表。

someurl.com?id=11&id=12&id=13

如何将 $_GET 用于多个 ID 实例,将其格式化为逗号分隔的字符串?或者,是否有更好的方法强制清单以我想要的格式提交表单?

现在回到前端,我使用 XSLT 来确定是否检查一个项目以记住它的先前状态。

    <xsl:choose>
    <xsl:when test="$id = *">
        <option selected="selected">
            <xsl:value-of select="*"/>
        </option>
    </xsl:when>
    <xsl:otherwise>
        <option>
            <xsl:value-of select="*"/>
        </option>
    </xsl:otherwise>
</xsl:choose>

当只选择一个选项但有多个选项时,这很好,您将如何处理 url 中该 $id 值的多个实例?

任何帮助和解决方案都非常感谢。

4

1 回答 1

1

我不太会使用php,但我相信您想在参数?id[]=11&id[]=12&id[]=13中获取数组。[11,12,13]id

恐怕 xslt 问题的描述太简短,我无法理解。首先,我不明白您为什么要首先selected在前端设置属性。然后,我建议 DRY:

<option>
  <xsl:if test='...'>
    <xsl:attribute name='selected' value='"selected"'/>
  </xsl:if>
  <xsl:value-of select='*'/>
</option>

至于测试本身,当以服务器理解的方式选择多个元素时,您从服务器得到什么?会不会简单

<xsl:if test="contains(concat(',', $ids, ','), concat(',', *, ','))">

工作?

于 2010-02-04T20:35:00.660 回答