0

私のバックエンドは、カンマ区切りの ID 値「11,12,13」を受け入れます。フロント エンドには、複数の選択を許可するチェック リストがあり、次のように投稿します。

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

ID の複数のインスタンスに対して $_GET を使用し、カンマ区切りの文字列にフォーマットするにはどうすればよいですか? または、チェックリストに必要な形式でフォームを送信させるより良い方法はありますか?

フロントエンドに戻ると、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>

これは、オプションが 1 つだけ選択されている場合は問題ありませんが、複数の場合、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 に答える