Change the form action to action="" and it should maintain any necessary url parameters.
It looks like it would work to me at this point. I guess you would have to debug where it is going wrong.
Add a die() statement inside the IF to see if it gets to that point. Then die inside the while to see if it gets in there. If it does, then die with the SQL statement you are running and see if it looks correct.
Check your page for the hidden form element and make sure it looks like it is named correctly. There is an issue somewhere but I'm not spotting it. Probably something simple once you figure out where it is.
Make sure you add " ORDER BY ProductOrder" to your main recordset. As it is, you wouldn't be able to tell if the order was updated in the database or not since you aren't changing the order on the page.