Since your question deals with very general web form problems, I strongly advise you to take a look at the researches and studies dealing with web forms.
It has been proved that bad designed web forms will lead to less completion, less user-satisfaction, and you won't be able to gather the information you need. I picked up for you several ressources that I find pertinent. As you could expect, it's not a "ready to use" solution, but if you follow the guidelines of these ressources, studies has proven that you will be able to get maximum information.
https://research.googleblog.com/2014/07/simple-is-better-making-your-web-forms.html
http://preibusch.de/publications/Preibusch-Krol-Beresford__voluntary_over-disclosure.pdf
Web Form Design
I strongly advise you to take a look at the last one. It has been written by one of the guru of the ux and design out there (Luke Wroblewski). It will help you a lot (just look at the first pages to understand).