Я не очень часто использую 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(',', *, ','))">
работа