Hallo Forum!
habe einen String, der Texte, Variablen, normale Arrays und assoziative Arrays enthält, entspr. gesplittet und dann zusammengestezt werden soll. Die Variablen müssen im String sein! Mit "neuer String = neuerString + eval(variable);" funktioniert das. Es funktioniert leider nicht, wenn die Vraibale ein Array / assoziatives Array
ist.
Mit stark vereinfachten (=blöden) Variablen
... :
Während case 1 (Text) und 2 (eval(variable)) funktionieren, funktioniert das eval() in case 4 und 5 bei Arrays nicht. Verschachtelte evals(...) funktionieren da auch nicht.
Frage: Wie bekomme ich ein Array aus einem String heraus?
Danke vorab für Mühen und Tipps!
Ralf
habe einen String, der Texte, Variablen, normale Arrays und assoziative Arrays enthält, entspr. gesplittet und dann zusammengestezt werden soll. Die Variablen müssen im String sein! Mit "neuer String = neuerString + eval(variable);" funktioniert das. Es funktioniert leider nicht, wenn die Vraibale ein Array / assoziatives Array
ist.
Mit stark vereinfachten (=blöden) Variablen

Javascript:
// HTML: ONCLICK="VarString(TestString, 0)"
// JS:
var
TestText = "Brief",
TestArray = new Array("eMail", "Fax", "Post");
AssozArray = new Array();
AssozArray[0] = new Object();
AssozArray[0]["Name1"] = "Herr Maier";
AssozArray[0]["Name2"] = "Frau Müller";
AssozArray[0]["Name3"] = "Herr Schulze";
AssozArray[0]["Name4"] = "Hinz und Kunz";
TestString = "Diese #|TestText|# geht per #|TestArray|1|# an #|ArrayName|0|Name4|# noch heute heraus.";
function VarString(pStr, pyArr)
{
var
arrayStr = new Array(),
arrayVarStr = new Array(),
cntI = 0,
vNm = "",
arrayNm = "",
arrayNr = 0,
arrayObj = "",
tempString = "",
NeuerString = "";
// gesamter String in Texte, Vars, Arrays splitten:
arrayStr = pStr.split("#");
// Schleife: Gesamten String nach Text / Variablen / Arrays durchforsten, dann neu splitten
for(cntI=0; cntI<arrayStr.length; cntI++)
{
arrayVarStr = arrayStr[cntI].split("|"); // SubArray aus yStr splitten
switch(arrayVarStr.length)
{
case 1: tempString = arrayStr[cntI]; break; // Keine Variable sondern Text
case 3: tempString = eval(arrayVarStr[1]); break; // Einfache Variable: #|Var|#
case 4: // Einfaches Array: #|Array|Nr|#
switch(arrayVarStr[1])
{
case "0": arrayNm = "_arrayDmn"; break; // Standard-Array der Domain / des Kunden
case "1": arrayNm = "pyArry"; break; // übergebenes Array
default: arrayNm = arrayVarStr[1]; // beliebiges Array
}
arrayNr = parseInt(arrayVarStr[2]);
tempString = eval(arrayNm[arrayNr]);
break;
case 5: // Assoz-Array mit Entscheid welches Array: #0/1/2/3|Array|Nr|Nm|#
// alert("assoz Array");
switch(arrayVarStr[1])
{
case "0": arrayNm = "arrayDmn"; break; // Standard-Array
case "1": arrayNm = "pyArry"; break; // übergebenes Array
default: arrayNm = arrayVarStr[1]; // beliebiges Array
}
arrayNr = parseInt(arrayVarStr[2]);
arrayObj = arrayVarStr[3];
tempString = eval(arrayNm[arrayNr][arrayObj]);
break;
default: alert("Fehler");
}
NeuerString = NeuerString + tempString;
}
return NeuerString;
}
Während case 1 (Text) und 2 (eval(variable)) funktionieren, funktioniert das eval() in case 4 und 5 bei Arrays nicht. Verschachtelte evals(...) funktionieren da auch nicht.
Frage: Wie bekomme ich ein Array aus einem String heraus?
Danke vorab für Mühen und Tipps!
Ralf
Zuletzt bearbeitet von einem Moderator: