Попутно input заменил на select, а родительский div на p.
Решение проблемы 1:
В строке 8 нужно было не просто указать значение value, а указать, что оно добавляется к уже имеющемуся id!
было: '-' + 'value'
стало: 'id' + '-' + 'value'
Решение проблемы 2:
Для элемента <select> нужен не .click() а .change() !
С этим кодом заработало:
$(document).ready(function(){
$('#products p').change(function(){
var p = $(this);
var a = p.children('a');
var s = p.children('select').eq(0);
var value = s.val();
var a_id = a.attr('id');
var arr = a_id.split('id' + '-');
var new_id = arr[0] + arr[1] + '-' + value;
$(a).attr('id', new_id);
});
});