Member/Set Tool
This tool is a user interface that allows the user to add items or people to a group or collection in a particular order. I originally developed it to allow administrative users to select questions they wanted to add to a test. Afterwards, it occurred to me that it could be used in any situation where you needed to add or remove members from a set.
Below is a working example of the tool. To move a president in or out of the White House, simply click on the president`s name. You can also use the Move All and Remove All links to relocate all of the presidents at once. To save your changes, click on the Save Changes button.
The tool uses ColdFusion to interact with the database and generate the initial lists, but the tool could be modified to use any server-side scripting language (PHP, JSP, etc.). The dynamic parts of the interface are powered by JavaScript functions that work in IE 6 and higher, Firefox, Safari 2.0, and Netscape 7 and higher.
So how does it work? Each time a name is clicked, a JavaScript function is called that updates a comma-delimited list of member ID numbers kept in a hidden text field in the right column (either subtracting the ID from the list if it`s already in the list or adding it). The same function then creates a copy of the member link in the right column and changes the CSS class of the member link in the left column. The Move All and Remove All links work in a similar fashion. When the Save Changes button is clicked, the hidden text field in the right column containing the IDs of the members who should be put into the set is used to create the database records that link the member records to the set record (to establish the one-to-many relationship).
To get the files that make up this tool, click on the hyperlink below to download the .zip file. All of the files contain comments that will help you customize the tool to meet your own needs.

