C'est plus facile d'utiliser les listes déroulantes, car avec un champs texte libre, tu laisses à l'utilisateur une multitude de manières différentes d'insérer la date:
jj.mm.aaaa
jj.mm.aa
jj-mm-aaaa
jj-mm-aaaa
... etc, etc, etc...
Ce qui veut dire qu'en récupérant la valeur du champs, tu dois prévoir un traitement relativement conséquent.
Ou alors, tu indiques à l'avance à l'utilisateur ce que tu attends comme format, en imposant par exemple jj/mm/aaaa, et ensuite, il ne te reste plus qu'à faire une vérifiaction de la validité de la date, et à retourner une erreur si date invalide.
Pour insérer dans la base de données, je pense que tu n'auras pas besoin d'aide.