Hello,
I would be glad to help you out. If you allow I'd be glad to use jquery ui modal dialog as part of my solution, if not I will use whatever you have/use or even can do it in vanilla js, but why reinvent the wheel :).
You haven't defined any API. My proposal upon which we can discuss is as follows:
hostname/getSearchRowData - a GET request with two parameters:
id: the id of the row record (db primary key)
type: enum type {'source', 'title', 'category'} and other if needed
Than in the backend you would have an method/action or whatever you use listen for that request and based on the id and type you will response with an json data:
{
"id": xxx, // id of the record (primary key)
"type": "yyy", // enum type from above
"data": "zzz"/["", "", ..., ""] // the actual data, array of category items, or just plain string for others
}
hostname/updateRowData - a POST request with json data in the format of the response from getSearchRowData. In case of categories and if more than one can be selected an array of selected once will be send.
JS code will have two main parts:
first is the logic for handling user clicks over the search table and passing needed data to something like an controller, which will make the request with the id and type.
second part is showing user friendly error if such happens or in normal case logic for presenting modal dialog with received data from the server and posting form results.
No more characters left :)
Nikita