Buongiorno a tutti!
(quest oggi è bella!)

Dunque, in un form ho un campo data di nascita composto da 3 select (giorno, mese, anno).

I dati li passo ad una pagina per validarli con un checkdate.
Ora, se per qualche motivo la data è sbagliata o incompleta (es 31/04/1983), oppure manca qualche altro dato nel form, mi rimbalza alla pagina del form.

Come accade per i campi input che vengono ricompilati, vorrei che venisse riselezionata la data come l'aveva selezionata l'utente.

Come si fa?

Io avevo pensato (molto elementarmente credo) di inserire (tipo per l'anno) ad ogni select un echo tipo:
<?php echo $anno1983 ?>
dove nella pagina di validazione c'è un controllo tipo:
if ($anno == 1983){
$anno1983 = "selected='selected'";
}
elseif($anno == 1984){
$anno1984 = "selected='selected'";
}
else($anno == 1985){
$anno1985 = "selected='selected'";
}

solo che in questo modo (avendo solo per l'anno oltre 100 select) mi verrebbe un listato infinito!!!

Una soluzione potrebbe essere uno switch, ma sempre una cosa infitina verrebbe con tutti i case.

Un ciclo for? ...tipo:

for(i=1900;i<=2010;i++){
if($anno == i){
$anno . i= "selected='selected'";
}
else{
$erranno=1;
}
}

Che ne dite, può andare?