Autor Zpráva
Pavel Dumbrovský
Profil
Dobrý den,
Chamurappi mě asi prokleje, protože už jsem tady s něčím podobným otravoval, http://diskuse.jakpsatweb.cz/?action=vthread&forum=8&topic=118806&page=-1 ale prostě to sám nedám dohromady.
Potřebuji (asi pro někoho) jednoduchou věc:
Do proměnné vložit pole, přičemž jeho název bude také proměnlivý. Mám pole pole1, pole2, pole3, pole4, atd. a podle podmínky potřebuji do proměnné pole uložit pole.aktuální číslo. Ale jak to zapsat, to nevím. Něco jako:
$pole=$jinepole".$x."
v php
Tak děkuju za pomoc!
Keeehi
Profil
Rozhodně by to šlo pomocí eval. Ale je to nehezké.
var pole1=3;
var x=1;
eval("alert(pole"+x+")");
imploder
Profil
EDIT: aha, tak jsem si spletl sekci. to níže je pro PHP.

Pavel Dumbrovský:
$nazev_pole = 'pole'.$x;
$pole = $$nazev_pole;


Chtěl jsem napsat, že je to ale takové nečisté, špatné... ale nenapadá mě, k čemu špatnému konkrétně by to mohlo vést oproti normálnímu indexování. Takže asi se to prostě akorát obvykle nedělá.
_es
Profil
Pavel Dumbrovský:
Prečo spomínaš Chamurappiho, ktorý v PHP neprogramuje a dávaš to do sekcie JS? Ak má ísť o JS, tak to popíš trochu zrozumiteľnejšie.
Pavel Dumbrovský
Profil
Ale né, má to být v JS. Asi jsem to nenepsal úplně srozumitelně..
Chci něco jako je:
$pole=$jinepole".$x."

v php
ale chci to v JS. :)
Omlouvám se, že jsem to předtím nenapsal jasněji.
Srozumitelněji vysvětlit co chci už ale asi nedovedu. Jak jsem říkal, mám neznámý počet polí s názvy pole1, pole2, pole3 atd.
A dle podmínky potřebuji přiřadit do
var pole=pole"x";

, kde x bude právě číslo od 1 do X, kde X je počet neznámých polí. Zkrátka z těch všech polí potřebuji vybrat právě jedno aktuální podle čísla x, čili podle posledního znaku (více znaků) v názvu pole.

Příklad: Mám naplněná pole pole1, pole2, pole3, pole4.
Proměnná x je 3, takže musím použít pole3. Jak?
Chamurappi
Profil
Reaguji na Pavla Dumbrovského:
mám neznámý počet polí s názvy pole1, pole2, pole3 atd.
Proč nejsou v poli?
Pavel Dumbrovský
Profil
Chamurappi:
Nejspíš proto, že ještě včera jsem o polích v JS nevěděl skoro nic.

Když to naplňuju takto:
var podkategorie1 = new Array();
			podkategorie1[0] =new Array(); 

				podkategorie1[0][0]=["1"];

				podkategorie1[0][1]=["text"];

				podkategorie1[0][2]=["1"];

						podkategorie1[1] =new Array();

tak to mi jde, ale jakmile to teda chci dát do pole, jak říkáte, :
var podkategorie = new Array(); 

var podkategorie [0] = new Array();

		var podkategorie[1] = new Array();

		      podkategorie[1][0] =new Array(); 

				podkategorie[1][0][0]=["1"];

				podkategorie[1][0][1]=["test"];

				podkategorie[1][0][2]=["1"];

						podkategorie[1][1] =new Array(); 

tak mi to háže chybu, že byl očekáván znak ;
Chamurappi
Profil
Reaguji na Pavla Dumbrovského:
Stačí si porovnat ty dva kódy, ne? Před přiřazením do prvku pole se nepíše var.

podkategorie1[0][0]=["1"];
Nevím, jestli si to uvědomuješ, ale tady nepřiřazuješ řetězec "1", ale pole s jednou položkou, v níž je řetězec "1".
Pavel Dumbrovský
Profil
Aha, tak to s tím var jsem nevěděl, jinak s tím polem máte pravdu, to je chyba způsobená tím, že to přiřazuji skrz php a je tam tuna znaků, mám v tom guláš. Takže problém vyřešen, už mi to jede, jen pro zajímavost, to přiřazení jak jsem zprvu požadovat je možné, nebo ne?
_es
Profil
Pavel Dumbrovský:
jen pro zajímavost, to přiřazení jak jsem zprvu požadovat je možné, nebo ne?
Asi nie je dobré ti na to odpovedať.:-)
Pavel Dumbrovský
Profil
_es:
Neodpustím si dotaz: Nesloužil vy jste na Hololodi? :)
Witiko
Profil
Pavel Dumbrovský:
Chci něco jako je:
1
$pole=$jinepole".$x."

Nechci být přehnaně chytrý, ale takový zápis mi nedává smysl ani v php. Ty uvozovky zde ohraničují jaký řetězec? Nepracuji s php, pokud nemusím, ale tuším, že kdyby Tvá představa syntaxe byla správná, fungoval by mi tento kód:

<?
  $jinepole1 = "Ahoj světe";
  $x = "1";
  echo $jinepole".$x.";
?>
Keeehi
Profil
Witiko:
V php má na mysli toto:
<?php
  $jinepole1 = "Ahoj světe";
  $x = 1;
  echo ${"jinepole".$x};
?>
Ovšem jak to zapsat v JS bez použití eval to nevím.
Chamurappi
Profil
Reaguji na Pavla Dumbrovského:
Viz Proměnná složená z jiné proměnné.
Ale nepoužívej to.
Witiko
Profil
Keeehi:
U globální proměnné pomocí window["jinepole" + x] u neglobální pomocí pole? Nevidím důvod proč takto znásilňovat jmenný prostor. :)
Pavel Dumbrovský
Profil
Chamurappi:
Nebudu, donutil jste mě se "naučit" s polem, takže nebude potřeba. Díky. :)

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: