Lo mejor para esas cosas es una combinación de JavaScript y campos ocultos en el tag del formulario. Te cuento como hago yo esas cosas.
Supongamos un formulario:
Código:
<form name="form1" method="post" action="recogedatos.asp">
<select name="select">
<option value="1">Valor 1</option>
<option value="2">Valor 2</option>
<option value="3">Valor 3</option>
</select>
<input name=" insert" type="submit" value="Aceptar" class="enviar"/>
</form>
Al pulsar el boton de enviar, el archivo recogedatos.asp recibirá solo dos parejas de datos (name/value): select=1&insert=Aceptar. Como ves, solo se admiten parejas de datos (data set pairs en inglish :P ) en el envio del formulario. Entonces, ¿como envio el otro valor? Usando un campo más :D
Código:
<form name="form1" method="post" action="recogedatos.asp">
<input name="texto" type="hidden" value="" />
<select name="select">
<option value="1">Valor 1</option>
<option value="2">Valor 2</option>
<option value="3">Valor 3</option>
</select>
<input name=" insert" type="submit" value="Aceptar" class="enviar"/>
</form>
Ahora tenemos tres parejas de datos. Solo nos falta añadir el valor a ese campo oculto. Para ello usaremos JavaScript y una pequeña funcioncilla que hará de intermediaria entre el formulario y el envio de este.
Código:
<script type="text/javascript">
<!--
function funcioncilla() {
var doc = document.form1
doc.texto.value = doc.select.options[doc.select.selectedIndex].text;
return true;
}
-->
</script>
<form name="form1" method="post" action="recogedatos.asp" onSubmit="return funcioncilla()">
<input name="texto" type="hidden" value="" />
<select name="select">
<option value="1">Valor 1</option>
<option value="2">Valor 2</option>
<option value="3">Valor 3</option>
</select>
<input name=" insert" type="submit" value="Aceptar" class="enviar"/>
</form>
Si te fijas, el formulario comprobará la función
funcioncilla antes de enviar los datos ya que esa es la misión del evento onSubmit: disparar una acción antes de enviarse.
Esta función JavaScript realmente es una sola linea:
doc.texto.value = doc.select.options[doc.select.selectedIndex].text;
como ves, asignamos a ese campo oculto que estaba vacio el
texto (no su valor) de la opción seleccionada y luego devuelve true para que se envie sin demora

Cuando llegue a la página recogedatos.asp, la información estará en parejas pero esta vez asi:
select=1&texto=Valor 1&insert=Aceptar
Con lo que ya tienes el texto del combo
NOTA: te recuerdo que para que funcione correctamente, javascript debe estar habilitado en el cliente (80% de los casos).
Un saludo