mira.. si te das cuenta, el parámetro que te da error utilizando implode() o foreach(), es el mismo para ambos casos. Se trata del $_POST['seleccion']... o sea que, como te dije antes... algo debe de estar mal definido en el formulario, en la línea donde aparece seleccion[]... Entonces centra tu atención en esa línea... El error que yo veía eran las comillas que te faltaban, pero si ya las pusiste y no funciona igual... entonces haz algo:
Añade un echo $_POST['seleccion'] para que puedas ver qué valor está recibiendo esa variable. Algo así:
Código PHP:
<?php
$link=mysql_connect("conexion");
mysql_select_db("db",$link);
echo $year;
echo $_POST['seleccion'][0];
$lista=implode(',',$_POST['seleccion']);
$string="Update pagos Set $cu='$f',$mo='$to' Where numero_alumno in(".$lista.") and semestre='$se' and ano='$year'";
$respuesta=mysql_query($string,$link);
} *
?>
Saludos