По поводу вашей наработки, не смог посмотреть, потому что после щелчка на списке(логика его появления мне непонятна), браузер вешается абсолютно.
Я так понимаю, по вашим словам, показывать во второй таблице товары в зависиомости от того, что в первой таблице вы уже научились?
И проблема только в заполнении третьей таблицы.
Например третью таблицу можно заполнять, просто перемещая туда туда соответсвующую строчку
table3.appendChild(elem)
//table3 - третья таблица
//elem - элемент, который надо переместить
Если строчку надо оставить во второй таблице, то лучше всего будет на лету создать новую строчку с необходимыми нам параметрами, и приатачить к третьей таблице
var new_elem=document.createElement('tr')
var td1=document.createElement('td')
td1.innerHTML=elem.cells[0].innerHTML
new_elem.appendChild(td1)
table3.appendChild(new_elem)
//table3 - третья таблица
//elem - элемент, который надо скопировать
// в данном случае в третью таблицу вставляется строчка с одной ячейкой-копией первой ячейки из второй таблицы
elem можно получить из обработчика события соответсвующей строки, а table3 любым из стандартных способов(например по id)
Для передачи на сервер обычным способом(формой), оборачиваем третью таблицу в форму, а в кажой строке храним скрытые input-ы в уникальным ID товара(ID не JS-овское, то, которое у вас на сервере в БД)