Solo te cambié el inicio del form y el INPUT TYPE, yo tengo uno parecido espero resuelva tu problema.
Código PHP:
<?php
$detalle=("select n_num_cotizacion, n_precio from tb_cot_det where
n_num_cotizacion='$n_num_cotizacion'");
$det = mssql_query($detalle);
if (mssql_num_rows($det) > 0){
while($rr = mssql_fetch_array($det)) {
<form> //AQUÍ TE CAMBIÉ EL INICIO DEL form
$n_num_cotizacion = $rr['n_num_cotizacion'];
$n_precio = $rr['n_precio'];
echo "<tr align='center'><td><li>$n_num_cotizacion <td><input type='text' name='precio' size='20'
value='$n_precio'</td></tr>"; <------ hay esta el formulario para ingresar los precios
<INPUT TYPE="submit" NAME="accion" VALUE="Cambiar" >
}
} else {
echo "No hay resultados";
}
?>
</form>