Действительно, корявый путь я выбрал для создания массива: проще подготовить массив на стороне php и передать его в js (в принципе так я и сделал уже)
теперь уже больше интересна теоретическая сторона вопроса: почему созданный таким образом массив при выводе в браузер чарез селект отображает действительные значения, а при попытке работать с этим селектом в JS все значения всех полей равны undefined
для примера:
<p>вот так отображается в браузере</p>
<select id='test'>
<option value="">-</option>
<option value="1">один</option>
<option value="2">два</option>
<option value="3">три</option>
<option value="4">четыре</option>
</select>
<p>а вот так отображается через ALERT</p>
<input type="button" value="Проверить" onclick="test()">
<script>
function test()
{
var a = '<option value="">-</option>';
a += '<option value="undefined">undefined</option>';
a += '<option value="undefined">undefined</option>';
a += '<option value="undefined">undefined</option>';
a += '<option value="undefined">undefined</option>';
alert(a);
}
</script>
отвечая на вопрос
"И где по этому коду видно, что это передается в JS и под каким именем?"
под именем countries