Pues, como ya bien te explico rusinho, puedes hacerlo de esa manera y es la forma más fácil de hacerlo, pero, como tu dices, si no puedes tocar la forma en que se arma el select:
Cita:
Iniciado por educlon
La info del SELECT sale de una base de datos, y en el value coloca el "id" del registro, y en el texto del option coloca lo que encuentra en el campo "nombre" de la BD. Como en realidad las funciones de armado del SELECT vienen heredadas de una superclase, no la puedo tocar ni modificar para que trabaje de otra forma, ya que esta clase se usa en un montón de lugares del portal y afectaría el comportamiento en otras partes. Mi duda era saber si al enviar el formulario con la variable $pais, había alguna forma de recuperar tanto el value como el nombre que está dentro del OPTION, o sólo se puede recuperar el value, por lo cual si bien la idea de maxi_lance es muy buena, no me va a servir para este caso.
entonces lo que puedes hacer es realizar una consulta en el archivo que se encarga de procesar tu formulario (procesar.php) y obtener ese dato que no es dificil ya que como mencionas el select lo formas de una consulta a una bd así que tendrías que hacer exactamente lo mismo. Si tu formulario es así:
Código PHP:
<form method="POST" value="procesar.php">
<select name="pais">
<option value="1">Argentina</option>
<option value="2">Brasil</option>
<option value="3">Chile</option>
</select>
<br />
<input tipe="submit" value="Enviar">
</form>
en el archivo procesar.php tendrías que hacer otra consulta de esta forma:
Código PHP:
<?php
$id = $_POST['pais'];
$conexion = mysql_connect( 'servername', 'username', 'password' );
$db = mysql_select_db( 'basededatos' );
$consulta = "SELECT nombre FROM tabla_paises WHERE id=".$id;
$res = mysql_query( $consulta );
$fila = mysql_fetch_array( $res );
echo "El value del select es: ".$id." y el texto es: ".$fila['nombre'];
mysql_close( $conexion );
?>
Esto es sólo un ejemplo rápido, tu tendrías que validar que los datos sean validos y que la consulta te devuelva algún resultado. Como vez es bastante sencillo. Espero haberme dado a entender o que por lo menos te haya dado una idea. Suerte