Вот пример со списком, который на этой странице:
<html>
<head>
<meta charset="utf-8">
<title>Настройки</title>
<script src="http://domain_name/config.js"></script>
</head>
<body>
<form>
<div>
<select name="Sample_Rate">
<option value="0">5</option>
<option value="1">10</option>
<option value="2">20</option>
</select>
</div>
<div>
<button>Submit</button>
<div>
</form>
<script>
<script>
document.querySelector('[value="'+Sample_Rate+'"]').selected = true;
</script>
</script>
</body>
</html>
Переменная Sample_Rate имеет значение ранее выбранной в списке (то что в контроллере) и наряду с другими переменными конфигурации находится в подключаемом файле config.js. Его структура проста:
var Sample_Rate = 1,
имя следующего параметра = значение параметра,
и т.д.
При каждом выборе пользователя и передачи формы серверу весь выбор нужно записывать в этот файл в соответствующие переменные. Можно поступить и проще - если форма отправляется методом GET, то записывать в этот файл только строку параметров запроса, то что после ?. Скрипт в файле с формой разберет эту строку и уже после разбора будет оперировать полученными значениями. То есть от вас нужно только перезаписывать файл config.js при каждом получении формы, правда серверу обязательно нужно проверять что прислали, если только у вас не защищенный вход.