Autor Zpráva
JACK
Profil *
Dobrý den. Prosím Vás potřebuji poradit.
Mám mnoho takovýchto textových polí <INPUT TYPE=TEXT NAME="SENDACT01OLD01" VALUE="8">.
Jejich jména jsou SENDACT01OLD01, SENDACT01OLD02, ... až ... SENDACT06OLD05.
Zjišťuji jejich hodnoty tímto způsobem: var C11 = document.realtime.SENDACT01OLD01.value; až C65 = document.realtime.SENDACT06OLD05.value;
Chtěl bych udělat for cyklus, který ty hodnoty zjistí. Nějak takto:

var i; var j; var x; var y;
for (i = 1; i < 6; i++) {x++; for (j = 1; j < 5; j++) {y++; C[i][i] = document.realtime.SENDACT0[x]OLD0[y].value; }}


Ale dělám něco špatně. Prosím Vás můžete mi poradit.
Děkuji moc za radu.
Radek9
Profil
JACK:
Pokud potřebuješ pracovat takhle jen s kusy indexu, musíš ho dát celý do hranatých závorek:
var C = [];
for(var i=1;i<=6;i++){
  C[i] = [];
  for(var j=1;j<=5;j++){
    C[i][j] = document.realtime["SENDACT0"+i+"OLD0"+j].value;
  }
}
JACK
Profil *
Děkuji moc. :)
Radek9
Profil
JACK:
Jinak, proč to máš tak složitě? Inputy mohou být také řazeny do polí:
<input type="test" name="C[1][1]" value="8">
<input type="test" name="C[1][2]" value="9">
Edit: Ehm, tak s JS si to až zas tolik nerozumí, takže asi nic.
Tori
Profil
Radek9:
s JS si to až zas tolik nerozumí
Tohle? (viz FAQ)
C[i][j] = document.realtime["C["+i+"]["+j+"]"].value;
Radek9
Profil
Tori:
Jo, říkám, že si to až tolik nerozumí. Například v PHP při odeslání dostaneš v $_POST rovnou pole. V JS to musíš zapisovat takhle, takže to vlastně vyjde nastejno jako to ["SENDACT0"+i+"OLD0"+j].
Chamurappi
Profil
Reaguji na Radka9:
Například v PHP při odeslání dostaneš v $_POST rovnou pole.
Jiné serverové jazyky vyrábějí automaticky (jednorozměrné) pole z prvků se stejnými name — a totéž se děje v DOMu. Kdybys měl pět <input name="C">, tak budou v document.realtime.C[0]document.realtime.C[4].
Radek9
Profil
Chamurappi:
Aha, tak tohle je pro mě novinka. Dalo by se to ale nějak logicky použít dvojrozměrně?

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0