Показать сообщение отдельно
  #1 (permalink)  
Старый 30.10.2016, 22:01
Новичок на форуме
Отправить личное сообщение для jony0x Посмотреть профиль Найти все сообщения от jony0x
 
Регистрация: 30.10.2016
Сообщений: 3

работа с массивами
помогите разобраться с проблемой:

имеется создаваемый через смарти массив:
{if isset($country.states) && $country.contains_states}
countries[{$country.id_country|intval}] = new Array();
	{foreach from=$country.states item='state' name='states'}
		countries[{$country.id_country|intval}].push({ldelim}'id' : '{$state.id_state}', 'name' : '{$state.name|escape:'htmlall':'UTF-8'}'{rdelim});
	{/foreach}
{/if}


при работе с этим массивом в дальнейшем заполняется тег select:

function myChangeStates()
{
	var opt = '<option value="">-</option>';
	var id_country = $('select#id_country option:selected').val();
	id_country = parseInt(id_country);
	$('select#id_state').empty();
	for(var state in countries[id_country])
	{
		opt += '<option value="'+state['id']+'">'+state['name']+'</option>';
	}
	$('select#id_state').append(opt);
}


и все вроде работает (т.е. на экране тэг заполняется как надо, значениями), только вот при попытке обратиться к элементам этого селекта начинаются "чудеса"(просто от недостатка знаний иначе назвать не могу)))): все значения созданного массива countries имеют значения "undefined" и обратиться к ним у меня не получается
пробовал выводить тупо на экран:
alert(opt);
выводит примерно следующее:
<option value="">-</option><option value="undefined">undefined</option>
<option value="undefined">undefined</option>
<option value="undefined">undefined</option>
<option value="undefined">undefined</option>...


задача стоит примерно такая: надо сделать выбранной одну из опций селекта, value которой известен, но т.к. она "undefined", то и соответственно попытки отыскать её терпят эпик феил(
выручайте, может хоть нужное направление мысли зададите)))
Ответить с цитированием