Strona 1 z 1

Tablice asocjacyjne w javascript - czy istnieją?

: 28 maja 2009, 21:10
autor: Shakez
Witam. Piszę właśnie stronkę, która dynamicznie dodaje pole wyboru w formularzu. Pole to ma być uzupełniane danymi z tablicy ale musi ona być asocjacyjna.

Wygląda to tak:

Kod: Zaznacz cały

<script type="text/javascript">
<!--
var x=1;

function dodaj_element(kontener){

        var znacznik = document.createElement("select"); //utworz element select
        znacznik.setAttribute('name', "numer_"+x);
        znacznik.setAttribute('id', "pole_select_"+x);
                var kontener = document.getElementById(kontener); //dodaj na koniec
        kontener.appendChild(znacznik); 
        wypelnij("pole_select_"+x) //wypelnij
                x++; //zwieksz licznik - x
}

function wypelnij(pole) {

		var [b]text[/b] = ["wersja1", "inna kategoria", "trzecia kat", "jakas kat"]; //elementy listy będą pobierane z bazy do tablicy

                for (licznik=0;licznik<text.length;licznik++) //wypelnij liste
		{ 
			var opt = document.createElement("option");
			document.getElementById(pole).options.add(opt);
			var nowyNod = document.createTextNode("
");
			opt.text = text[licznik];
                }
}
//-->
</script>

<form method="post" ACTION="nowy.html">

<div id="Formularz">

</div>
<INPUT TYPE="button" NAME="pokaz" VALUE="Jeszcze jedena?" onclick="dodaj_element('Formularz')">

</FORM>
Zmienna ,,text'' musi być asocjacyjna - jak to zrobić?

: 28 maja 2009, 21:45
autor: jedi1

: 28 maja 2009, 21:55
autor: Shakez
Gdy ze zmiennej ,,text'' zrobiłem zmienną asocjacyjną ,,text["big"]'' i podstawiłem ją to skrypt przestał działać.
Tak to teraz wygląda:

Kod: Zaznacz cały

<script type="text/javascript">
<!--
var x=1;


function dodaj_element(kontener){

        var znacznik = document.createElement("select"); //utworz element select
        znacznik.setAttribute('name', "numer_"+x);
        znacznik.setAttribute('id', "pole_select_"+x);
                var kontener = document.getElementById(kontener); //dodaj na koniec
        kontener.appendChild(znacznik); 
        wypelnij("pole_select_"+x) //wypelnij
                x++; //zwieksz licznik - x
}

function wypelnij(pole) {
		var text= new Array()
		text["big"]=["wersja1", "inna kategoria", "trzecia kat", "jakas kat"];//elementy listy będą pobierane z bazy do tablicy

                for (licznik=0;licznik<text["big"].length;licznik++) //wypelnij liste
		{ 
			var opt = document.createElement("option");
			document.getElementById(pole).options.add(opt);
			opt.text["big"] = text["big"][licznik];
                }
}

//-->
</script>

<form method="post" ACTION="nowy.html">
<div id="Formularz">
</div>
<INPUT TYPE="button" NAME="pokaz" VALUE="Jeszcze jedena?" onclick="dodaj_element('Formularz')">
</FORM>
Co jeszcze jest nie tak?