Preface: I used to do web development a lot more than I do now, but that was in the days before AJAX. For the project I'm currently working on, I'm teaching myself AJAX so forgive any glaring misunderstandings or stupidity.
In my normal work, I'm a PCB designer but I've been tasked with helping (read: doing all the work) a team re-vamp an internal search tool that we use.
The scope of the project is to have an iGoogle-style drag and drop interface where the "widgets" in the drag-and-drop interface are all independent search terms for a SQL query. Taken together, they all form a complete search query that the user wants to perform.
My drag-and-drop interface is based on a series of four (hard-coded) columns that are basically just unordered lists (UL). The "widgets" are CSS-styled list items (LI). The AJAX JavaScript allows me to drag-and-drop the widgets around into any given order or orientation.
Right now, I have the drag-and-drop functionality working and I also have the ability for users to add/remove widgets to suit the needs of their own query.
The final scope of the project is to do two things:
1) allow the user to save their query for later user
2) allow the user to share their query with other users of the system
Fundamentally, I understand this concept but I'm struggling with the most efficient way to store this data because I need to preserve not only the query as a whole but also the location of the various "widgets" inside the drag-and-drop interface.
Any advice on a good data structure or design practice to accommodate what I need?
In my normal work, I'm a PCB designer but I've been tasked with helping (read: doing all the work) a team re-vamp an internal search tool that we use.
The scope of the project is to have an iGoogle-style drag and drop interface where the "widgets" in the drag-and-drop interface are all independent search terms for a SQL query. Taken together, they all form a complete search query that the user wants to perform.
My drag-and-drop interface is based on a series of four (hard-coded) columns that are basically just unordered lists (UL). The "widgets" are CSS-styled list items (LI). The AJAX JavaScript allows me to drag-and-drop the widgets around into any given order or orientation.
Right now, I have the drag-and-drop functionality working and I also have the ability for users to add/remove widgets to suit the needs of their own query.
The final scope of the project is to do two things:
1) allow the user to save their query for later user
2) allow the user to share their query with other users of the system
Fundamentally, I understand this concept but I'm struggling with the most efficient way to store this data because I need to preserve not only the query as a whole but also the location of the various "widgets" inside the drag-and-drop interface.
Any advice on a good data structure or design practice to accommodate what I need?