You've made the right decision to make it from the whole class. Whenever I've collected for group things like this (kid's school, something for our exercise class instructor, etc.), I simply put a list of people on the outside of a big envelope. I tell them to put in whatever they want and cross their name off the list to show they have seen the envelope. They might put in $50, $20 or $0 - and I would have no way of knowing who gave what unless someone wrote a check. I like it that way - anonymous, as true charity should be. So many parents can't even afford to send their kids in with lunch, so being hit up for another cause (no matter how worthy) can put them in a very awkward position. People who can afford something but who don't contribute may not support the project, or they may possibly want to take credit for other people's generosity - either way, everyone knows if they did their best or not. As collector, it's not my business. It's more important for me to protect those who are out of work or not receiving promised child support or with a relative needing help with medical bills than it is to worry about someone getting "credit" who didn't "deserve it." Life's too short. It's either a group project, or it's not.
It was very nice of you to do this and I'm sure she will appreciate it.