Código PHP:
<?php
$prefijo = $_POST['prefijo']; //o $_GET no se que usas en el formulario
$numero= $_POST['numero']; //o $_GET no se que usas en el formulario
//transforma números en letras
$arrFrom = array("0","1","2","3","4","5","6","7","8","9");
$arrTo = array("q","r","s","t","u","v","w","x","y","z");
//Transformar prefijo y el número (datos del formulario) en letras
$codigo1 = str_replace($arrFrom, $arrTo, $prefijo);
$codigo2 = str_replace($arrFrom, $arrTo, $numero);
//Colocar el prefijo y el número (ya transformado en letras) dentro de un enlace externo
$link = "http://www.mipagina.com/index.jsp?id=$codigo1$codigo2";
//Abrir el enlace generado
header("Location: $link");
?>
Es lo que veo que esta mal, tu luego en el link cambias a otro nombre de variable, con eso te deberia de funcionar.
Si no haz un dump de la variable post o get y mira que te trae el formulario muchas veces os olvidais de poner NAME al campo y le poneis un ID sin NAME
Código PHP:
var_dump($_POST);
var_dump($_GET);