Whenever we have an ordering problem in Drupal, we use 'weights': the user assigns weights to the items, and these are used as sorting keys. It works, but it's not very intuitive.
I had the idea for making a JavaScripted up/down system: just provide up/down buttons instead of the weight selector when JavaScript is present, and use the DOM to swap the rows real-time, reflecting the new arrangement and updating the weights behind the scenes in hidden form values.
You can see a quick prototype at http://acko.net/dumpx/sort.html. The output is not very pretty though...
In theory it worked nicely: it doesn't require special changes to tables, it plugs into Drupal's existing weight system (after all, it's only a different interface to assigning weights), and it reverts to the old method for non-JS environments.
In practice, there are numerous issues already:
- (All?) When using the browser's back button, the rows revert back to their original order, rather than the order when the form was submitted. Unfortunately the hidden form inputs do retain their correct values (except in IE, amazing), so the visual order no longer matches the internal order.
- (Moz/Fx only?) For some reason when submitting a reordered set, and pressing the back button, the weights inside the hidden form values sometimes get changed and corrupted. When you submit again, one of the weights disappears (try C,B,A,D for example, weight '1' will disappear).
- (Safari only?) Apparently in Safari the correct weights are not used when you submit. At first I thought it might have something to do with the <noscript>'ed inputs interfering, but I changed the names and it's still broken. The code is written so that rows only get swapped after the weights have been succesfully swapped, so that's not it either. Does Safari ignore changes made to inputs' values through Javascript?
- (IE only) Apparently in IE you cannot swap (or modify?) the innerHTML of table rows; this causes an "unknown runtime error" in JavaScript. You have to swap the contents of cells only. Annoying.
Don't you just love it when browsers cooperate? :?
Guess I'll have to look at existing implementations for inspiration. Hopefully I'll be able to keep at least some of the lightweight, non-intrusive method I have now.

Does it have to be javascript?
Could all those problems not been solved by simply providing links with GET variables in them?
You would need no javascript, for each page will be rendered by php.
Ber
Page reloading = annoying
I don't think that would be a good idea: due to the up/down mechanism, repositioning an item requires multiple actions. If page loading is not speedy, this becomes totally annoying.
I'd love to see this
I stumbled across your page since the page weighting mechanism for me is the most annoying (non-)feature of drupal. So i'd be the first to happily apply your module (it would be a module, right?).
Concerning the browser-problems you address: I couldn't care less. It is never a good idea to use the back button after submitting a form, so I'd suggest you simply add a comment close to the submit button. I'd wouldn't be perfect, but it would be a major improvement.
Jan
Back button
Actually in the latest Drupal version, we've converted to use header redirects so that you can indeed use the back button and refresh button perfectly, without messing up form submissions.
Page reloading = annoying
Another point here: changing the order is a wonderful thing, but when things are reordered so transparently, the user might forget to press submit, since she sees the stuff in the correct(new) order anyway.
As a solution, we need something that tells the user that this is the NEW order that's NOT yet updated.
Possible solution:
1) Display a box near the table saying "Order Changed" near the table and the submit button.
2) Change the color of all items that have a different order than their original.
xmlHttpRequest
I've been looking at xmlHttpRequest a lot lately -- I think this might be a good solution.
See here for an example (it implements some progressive search, but should be able to row re-ordering as well).
It's 2007. Why hasn't this happened yet!
I ask because I would like to help make it happen. Actually just a screen where menu items could have their order set all at once would be a vast improvement.
Look how desperate my design partner has gotten:
How could it come to this in Drupal 5?
Joomla! deals way better with ordering...
i came from Joomla! to Drupal, as i prefer Drupals elegance
but the ordering in Joomla! is one of the things they take care of way better and intuitive than Drupal :(
Regurgitating old posts?
This post is 3.5 years old. If you want to discuss weights, I would suggest you go to the Drupal website and talk to the people there.