Opino que ya puestos se pueden enviar por separado.
Mira, con esto la función devuelve una cadena lista para agregar al querystring
<script language="JavaScript">
var valores = new Array()
function pepe(cual)
{
var pos = 0
for(m=0;m<cual.length;m++)
{
if(cual[m].selected == true)
{
valores[pos] = "valor" + (pos + 1) + "=" + cual[m].value
pos++
}
}
var valorFinal = ""
for (t=0;t<valores.length;t++)
{
valorFinal += valores[t]
if(t < valores.length-1)
{
valorFinal += "&"
}
}
alert(valorFinal)
return valorFinal
}
Es que no sé luego cómo montas el resto de valores en la querystring. Así tal como está la función le pides un return pepe(this) (o lo que sea) y yá tienes lista la subcadena a agregar
¿Qué te parece?