potresti mettere tutti i campi nel form ma non visibili (type="hidden") e visualizzarli in funzione della selezione
potresti anche racchiuderli in div sempre non visibili,
valuta il diverso comportamento delle soluzioni con degli esempi