Dynamische Variable
In4matiker
- javascript
Moin
habe im Forum gesucht aber nichts gefunden was auf mein Problem passt.
Geht um folgendes: Es wird via serverseitigem ASP VBScript ein HTML Code generiert in dessen Verlauf auch Javascript Arrays so dynamisch erstellt werden.
Ein möglicher Javascript Array Struktur sieht dann so aus:
var arrCombobox58 = new Array(2);
arrCombobox58[0] = new Array(1);
arrCombobox58[0][0] = "-> aBz bestimmen <-";
arrCombobox58[0][1] = "F";
arrCombobox58[1] = new Array(1);
arrCombobox58[1][0] = "Offen";
arrCombobox58[1][1] = "1";
Von diesen Arrays gibt es gut 3 Dutzend Stück und jeder hat eine andere Nummer arrCombobox58,arrCombobox78,arrCombobox81, etc
Jetzt habe ich eine Javascript Funktion geschrieben die die Arrays in einer Schleife auslesen soll. Durch die dynamische Namensgenerierung des serverseitigen ASP / VBscripts ist das aber irgendwie kompliziert oder ich bin zu blöd um auf die Arrays zuzugreifen.
var Ak_Fragen_ID = '58';
teststring = arrCombobox + Ak_Fragen_ID[1][0];
Hoffe Ihr wisst was ich meine.
Eine mögliche Alternative wäre natürlich die Arbeit mit Arrays.
Merci für die Hilfe und schönes Wochenende!
In4matiker
hallo In4matiker,
var arrCombobox58 = new Array(2);
var Ak_Fragen_ID = '58';
teststring = arrCombobox + Ak_Fragen_ID[1][0];
Hoffe Ihr wisst was ich meine.
Nicht _ganz_ genau. Aber ich hoffe, mein Zusammenschnitt deiner Variablen zeigt dir, in welcher Richtung ich analysieren würde. Für "teststring" kommt _vermutlich_ heraus:
teststring = new Array(2)58[1][0]
Um jetzt genauer nachschauen zu können, was _real_ herauskommt, hast du zuwenig von deinem Code gepostet.
Eine mögliche Alternative wäre natürlich die Arbeit mit Arrays.
Ups? Hast du nicht die ganze Zeit bereits mit Arrays zu arbeiten versucht?
Grüße aus Berlin
Christoph S.
Hallo Christoph
Jein - ich glaube Du hast mich da falsch verstanden.
mache mal ein (hoffentlich) besseres Beispiel:
Habe da irgendwie ein paar Arrays:
arrCombobox58
arrCombobox37
arrCombobox79
arrCombobox31
Und jetzt habe ich weiter eine Funktion die mit dem Wert ID übergeben wird.
In ID stehen dabei die Nummer drin die den Array identifizieren.
Also in der gleichen Reihenfolge wie die Arrays oben aufgelistet sind, wäre das jetzt hier:
GetArrayValues(58)
GetArrayValues(37)
GetArrayValues(79)
GetArrayValues(31)
So in der Funktion nun muss ich auf diese Arrays nun zugreifen je nachdem welche ID übergeben wurde.
function GetArrayValues(ID)
{
var Ak_Fragen_ID = ID;
teststring = arrCombobox+Ak_Fragen_ID;
}
Wobei die Zeile
teststring = arrCombobox + Ak_Fragen_ID[1][0];
ja nicht wirklich geht weil ich nicht weiss wie ich das aufbauen soll.
Hoffe ist nun verständlicher.
Merci und Gruss
In4matiker
Hi,
So in der Funktion nun muss ich auf diese Arrays nun zugreifen je nachdem welche ID übergeben wurde.
function GetArrayValues(ID)
{
var Ak_Fragen_ID = ID;
teststring = arrCombobox+Ak_Fragen_ID;
}
Wobei die Zeile
teststring = arrCombobox + Ak_Fragen_ID[1][0];
ja nicht wirklich geht weil ich nicht weiss wie ich das aufbauen soll.
Es wäre, wenn es denn ginge:
tmparray = "arrCombobox" + Ak_Fragen_ID;
teststring = tmparray[1][0];
Aber das funktioniert nicht in Javascript, wie Du wohl selber schon erfahren hast.
Eine recht einfache Möglichkeit wäre es einfach alle Deine numerierten Arrays in ein übergeordnetes Array zusammenzufassen sodaß Du so was ähnliches wie hier angedeutet machen kannst:
arrayOfArray = new Array();
arrayOfArray[58] = arrCombobox58;
arrayOfArray[37] = arrCombobox37;
arrayOfArray[79] = arrCombobox79;
arrayOfArray[31] = arrCombobox31;
/*
arrayOfArray = new Object();
arrayOfArray['arrCombobox58'] = arrCombobox58;
arrayOfArray['arrCombobox37'] = arrCombobox37;
arrayOfArray['arrCombobox79'] = arrCombobox79;
arrayOfArray['arrCombobox31'] = arrCombobox31;
*/
function GetArrayValues(ID){
teststring = arrayOfArrays[ID][1][0];
}
/*
function GetArrayValues(ID){
var arrayName = "arrCombobox" + ID;
teststring = arrayOfArrays[arrayName][1][0];
}
*/
Ist aber nix halbes und nix ganzes, es wäre mit an Sicherheit grenzender Wahrscheinlichkeit besser das ganze Projekt unter die Lupe zu nehmen, das stimmt bestimmt schon im Ansatz nicht.
so short
Christoph Zurnieden
你好 Christoph,
So in der Funktion nun muss ich auf diese Arrays nun zugreifen je
nachdem welche ID übergeben wurde.function GetArrayValues(ID)
{
var Ak_Fragen_ID = ID;
teststring = arrCombobox+Ak_Fragen_ID;
}
Wobei die Zeile
teststring = arrCombobox + Ak_Fragen_ID[1][0];
ja nicht wirklich geht weil ich nicht weiss wie ich das aufbauen soll.Es wäre, wenn es denn ginge:
tmparray = "arrCombobox" + Ak_Fragen_ID;
teststring = tmparray[1][0];Aber das funktioniert nicht in Javascript, wie Du wohl selber schon
erfahren hast.
*hüstel* Wenn du meinen Artikel gelesen hättest wüsstest du jetzt: es geht.
var tmparray = window["arrCombobox" + Ak_Fragen_ID];
var teststring = tmparray[1][0];
再见,
克里斯蒂安
Hi,
fast 'ne Stunde, was hat Dich aufgehalten? ;-)
Es wäre, wenn es denn ginge:
tmparray = "arrCombobox" + Ak_Fragen_ID;
teststring = tmparray[1][0];
var tmparray = window["arrCombobox" + Ak_Fragen_ID];
var teststring = tmparray[1][0];
Nun, ohne jetzt das lange Beckmesser zücken zu wollen, aber
tmparray = "arrCombobox" + Ak\_Fragen\_ID;
ist nicht das gleiche wie
tmparray = window["arrCombobox" + Ak\_Fragen\_ID];
Zudem: die von Dir beschriebene Methode funktioniert die nur in Javascript 1.5 oder auch in 1.4, 1.3, 1.2, 1.1, ... und vor allem: in allen Implementationen? (Vorsicht: Fangfrage! ;-)
so short
Christoph Zurnieden
你好 Christoph,
fast 'ne Stunde, was hat Dich aufgehalten? ;-)
Hehe. War mit meiner Holden Eis essen. Ausserdem hab ich ja auch noch was
anderes zu tun als Forum lesen ;)
Es wäre, wenn es denn ginge:
tmparray = "arrCombobox" + Ak_Fragen_ID;
teststring = tmparray[1][0];
var tmparray = window["arrCombobox" + Ak_Fragen_ID];
var teststring = tmparray[1][0];
>
> Nun, ohne jetzt das lange Beckmesser zücken zu wollen, aber
> tmparray = "arrCombobox" + Ak\_Fragen\_ID;
> ist nicht das gleiche wie
> tmparray = window["arrCombobox" + Ak\_Fragen\_ID];
Es ist das, was du, aus deiner Erklärung und dem Quelltext geschlossen,
meintest. „Es ist nicht das gleiche“ ist ja ein Nicht-Argument, du wolltest
ja ein bestimmtes Ziel mit einem bestimmten Mittel erreichen. Dies ist die
Syntax in dieser Sprache dazu.
> Zudem: die von Dir beschriebene Methode funktioniert die nur in
> Javascript 1.5 oder auch in 1.4, 1.3, 1.2, 1.1, ...
Es ist seit JavaScript 1.1 so definiert. Den „JavaScript 1.0“-Standard
habe ich jetzt nicht gefunden.
> und vor allem: in allen Implementationen? (Vorsicht: Fangfrage! ;-)
Ja. (Achtung, Fang-Antwort! ;-)
再见,
克里斯蒂安
--
Mensch zu Mathematiker: "Ich finde Ihre Arbeit ziemlich monoton". Mathematiker: "Mag sein! Dafür ist sie aber stetig und unbeschränkt."
<http://wwwtech.de/>
Hi,
Ausserdem hab ich ja auch noch was anderes zu tun als Forum lesen ;)
Oh, hast Du das Studium aufgegeben? >;->
(Ja, da hast Du Recht, Christian, es ist der reine Neid ;-)
Es ist das, was du, aus deiner Erklärung und dem Quelltext geschlossen,
meintest.
Nun, hätte ich das, hätte ich doch wohl auch das von Dir vorgeschlagene Konstrukt gewählt, oder?
„Es ist nicht das gleiche“ ist ja ein Nicht-Argument, du wolltest
ja ein bestimmtes Ziel mit einem bestimmten Mittel erreichen.
Das habe ich ja auch. Nur das ich auch Ziel und Mittel bestimmte.
Es ist seit JavaScript 1.1 so definiert. Den „JavaScript 1.0“-Standard
habe ich jetzt nicht gefunden.
Ich auch nicht, deshalb die Pünktchen.
und vor allem: in allen Implementationen? (Vorsicht: Fangfrage! ;-)
Ja. (Achtung, Fang-Antwort! ;-)
Ja, muß ich jetzt wirklich in meine Javascriptimplementation dieses Konstrukt einbauen? Sonst wär's kein Javascript?
Aber Du hast natürlich Recht: ich habe diese Möglichkeit schlicht vergessen. Ich bin wahrscheinlich, nein, mit Sicherheit mal wieder Urlaubsreif. Dies hier ist zwar um Längen weniger peinlich als mein Irrtum bezüglich der Htdig Lizenz aber auch nicht gerade von schlechten Eltern.
Ach ja, jetzt mal vierzehn Tage nach Mallorca Pinien pinseln! Oder drei Wochen in den Libanon Zedern zeichnen? Alternativ auf den Aleuten wochenlang Alliterationen anwenden?
Oh je, immer diese Entscheidungen ...
so short
Christoph Zurnieden
你好 Christoph,
Ausserdem hab ich ja auch noch was anderes zu tun als Forum lesen ;)
Oh, hast Du das Studium aufgegeben? >;->
(Ja, da hast Du Recht, Christian, es ist der reine Neid ;-)
Hehe.
Es ist das, was du, aus deiner Erklärung und dem Quelltext geschlossen,
meintest.Nun, hätte ich das, hätte ich doch wohl auch das von Dir vorgeschlagene
Konstrukt gewählt, oder?
Vermutlich nicht. Ist nämlich vielen Leuten unbekannt. Das habe ich dir
jetzt auch einfach mal unterstellt >;)
und vor allem: in allen Implementationen? (Vorsicht: Fangfrage! ;-)
Ja. (Achtung, Fang-Antwort! ;-)
Ja, muß ich jetzt wirklich in meine Javascriptimplementation dieses
Konstrukt einbauen? Sonst wär's kein Javascript?
So war die Antwort gemeint ;)
Aber da dies ein wichtiges Basis-Element von JS ist (man denke an
top.frames["hallodu"].variable) wäre eine Implementation, die das _nicht_
umsetzt ziemlich kaputt und hat es meines Erachtes wirklich nicht verdient,
JavaScript-Implementation genannt zu werden.
Ach ja, jetzt mal vierzehn Tage nach Mallorca Pinien pinseln! Oder drei
Wochen in den Libanon Zedern zeichnen? Alternativ auf den Aleuten
wochenlang Alliterationen anwenden?
Oh je, immer diese Entscheidungen ...
Ich fahre am Montag erstmal für eine Woche nach Varberg, Schweden ;)
再见,
克里斯蒂安
Hallo Christian.
Ich fahre am Montag erstmal für eine Woche nach Varberg, Schweden ;)
Einen schönen Gruß an Jeena. ;-)
Einen schönen Samstag noch.
Gruß, Ashura
你好 Ashura,
Ich fahre am Montag erstmal für eine Woche nach Varberg, Schweden ;)
Einen schönen Gruß an Jeena. ;-)
Werd ich bestellen :) Am Montag gehts los.
再见,
克里斯蒂安
Hallo Christian.
Ich fahre am Montag erstmal für eine Woche nach Varberg, Schweden ;)
Einen schönen Gruß an Jeena. ;-)
Werd ich bestellen :) Am Montag gehts los.
Dann wünsche ich euch viel Spaß.
Einen schönen Samstag noch.
Gruß, Ashura
Hi,
Vermutlich nicht. Ist nämlich vielen Leuten unbekannt. Das habe ich dir
jetzt auch einfach mal unterstellt >;)
Du möchtest doch nur, das ich mich hier zu einem Kalauer verleiten lasse, oder?
Nä, nix gipps! ;-)
Ich fahre am Montag erstmal für eine Woche nach Varberg, Schweden ;)
Wo ist dsa denn? Ach, gegenüber Dänemark an der der E-70, das Varberg? Na, dann brauchst Du ja wenigstens keine Malariaprophylaxe, soweit im Süden >:->
so short
Christoph Zurnieden
你好 Christoph,
Ich fahre am Montag erstmal für eine Woche nach Varberg, Schweden ;)
Wo ist dsa denn? Ach, gegenüber Dänemark an der der E-70, das Varberg? Na,
dann brauchst Du ja wenigstens keine Malariaprophylaxe, soweit im Süden >:->
Hehe. Der Norden hat mir schon immer besser gefallen als der Süden ;)
再见,
克里斯蒂安