Страница 1 из 1

Имя переменной по шаблону или что-то типа того

Добавлено: 30 июн 2006, 07:53
PHPNoob
ЗАДАЧА:

Беру допустим элемент массива regions_arr[3], равное допустим 27.

Я пробовал что-то типа "region_"+regions_arr[3];

Как мне написать region_3.value = '27', чтобы этот код был воспринят именно как код, а не как строка? Может через eval()? Но как именно?

ПОДРОБНО:

Есть код PHP, который формирует код на JavaScript. На самой странице расположено много селектов, имеющие следующие ID:

Код: Выделить всё

region_1;
region_2;
region_3;
region_10;
и т.д.
Есть также некий главный селект с ID="allregions"

В процессе работы яваскриптовской функции (которая запускается на onChange селекта allregions) необходимо сделать выбранными нужные значения в нужных селектах region_*.

Так вот, список селектов region_* и значений, которые должны оказаться выбранными лежит в массиве

Код: Выделить всё

regions_arr[ID селекта] = ID значения селекта, которое должно оказаться выбранным.

Добавлено: 30 июн 2006, 12:08
Oscar

Код: Выделить всё

<script>
var regions_arr = new Array();
for(var i = 1; i <= 10; i++) {
	regions_arr[i] = document.getElementById("region_"+i);
}
</script>

Добавлено: 30 июн 2006, 15:20
PHPNoob
Oscar, спасибо, у меня просто плохо с JS - я вот только-только узнал, что там нет многомерных массивов (т.е. их подобие надо объявлять как ты показал)

Добавлено: 30 июн 2006, 15:48
Oscar
[Oscar, в безнадёжной попытке протрезветь, усиленно ищет многомерные массивы в предидущем сообщении]

Что значит "в JavaScript нет многомерных массивов"?

Код: Выделить всё

<script>

var n = 2;
var m = 3;

var array = new Array();
for(var i = 0; i < n; i++) {
	array[i] = new Array();
	for(var j = 0; j < m; j++) {
		array[i][j] = i + " " + j;
	}
}

for(var i = 0; i < n; i++) {
	for(var j = 0; j < m; j++) {
		document.write(array[i][j] + "
\n");
	}
}
</script>
а это что: array[ i][j] ?


да и причём тут это вообще?

для работы с чекбоксами можно просто написать:

Код: Выделить всё

<script>
function checkAll() {
	for(var i = 1; i <= 10; i++) {
	   document.getElementById("region_"+i).checked = "checked";
	}
}
</script>
тогда и массивов вообще никаких не нужно..
в прошлом сообщении я массив "для примера" написал.