Willkommen in der Webstatt Zum Webstatt Blog und Stories
nuit nuit am 30.07.07 14:22

ich versuch grad vergeblich ein Js array zu einem String zu kriegen.....

es ist ein multidimensionales array, dass so aussieht:
[['Kontrast',['5','4']],['something',['4']]];

so solle s später auch imer string aussehen..hat da jemand eine idee?

im prinzip geht es darum, dass ich ein komplettes Array an php übergeben will und das geht nunmal nur in string form...eigentlich kann das teil aussehen wie es will...wegen mir auch xml -.- nur dachte ich, dass die ursprüngliche form am einfachsten ist

netcup.de Warum gibt es hier Werbung?
crooked am 30.07.07 17:40

Wenns aussehn darf wie es will *g*
var array = [['Kontrast',['5','4']],['something',['4']]];
document.write(String(array))


Kannst ja die Klammern selber basteln.

nuit nuit am 30.07.07 20:31

und das ganze nun bitte dynamisch????? hilft mir nichts, wenn ich das statisch hab

nujna...hab ne möglichkeit dank snake gefunden...gibtein paar nette serialize funktionen, die mti den funktioen in php übereinstimmen....das passt ganz schön ;) keinen stress mti umdenken dann

danke :D

edit: fals es jemand wissen will :D

die funktionen:
(benutzung sollte klar sein: serialize(array);)
das ganze ist kompatibel mit dem php serialize, ich verwende es um daten zu übergeben.....funktinoiert einwandfrei und man hat keinen stress es wieder durchzuparsene wie xml oder so :D so regel ich die komplette datenübergabe zwishcen php und Js auf httprequest ebene
function unserialize(s) {
var mixed = __unserialize(s);
return (mixed[1].replace(/^\s+|\s+$/g,'') == "")?mixed[0]:false;
}
function __unserialize(s) {
var type = s.charAt(0);
s = s.substring(1);
var mixed = null;
if (type == "i" || type == "d") {
var semi = s.indexOf(";");
mixed = parseFloat(s.substring(1, semi));
s = s.substring(semi+1);
} else if (type == "b") {
mixed = s.charAt(1)=="1";
s = s.substring(3);
} else if (type == "s") {
var colon = s.indexOf(":", 1);
var len = parseInt(s.substring(1, colon));
mixed = s.substring(colon+2, colon+2+len);
s = s.substring(colon+4+len);
} else if (type == "N") {
mixed = null;
s = s.substring(1);
} else if (type == "a") {
var colon = s.indexOf(":", 1);
var len = parseInt(s.substring(1, colon));
s = s.substring(colon+2);
mixed = new Array();
for (var i = 0; i < len; i++) {
var key = __unserialize(s);
var val = __unserialize(key[1]);
s = val[1];
mixed[key[0]] = val[0];
}
s = s.substring(1);
}
return [mixed, s];
}
function serialize(mixed) {
var s = "";
var type = serialize_get_type(mixed);
if (type == "i" || type == "d") {
s = type + ":" + mixed + ";";
} else if (type == "b") {
s = type + ":" + (mixed?1:0) + ";";
} else if (type == "s") {
s = type + ":" + mixed.length + ':"' + mixed + '";';
} else if (type == "N") {
s = type + ";";
} else if (type == "a") {
var n = "";
for (var key in mixed) {
if (!isNaN(key)) key = parseFloat(key);
n += serialize(key) + serialize(mixed[key]);
}
s = type + ":" + mixed.length + ":{" + n + "}";
}
return s;
}
function serialize_get_type(val) {
var type = typeof val;
var ret;
if (type == "number") {
if (val % 1 == 0) {
ret = "i";
} else {
ret = "d";
}
} else if (type == "string") {
ret = "s";
} else if (type == "object") {
if (val == null) {
ret = "N";
} else if (val.constructor == Array) {
ret = "a";
} else {
ret = "N";
}
} else if (type == "boolean") {
ret = "b";
} else {
ret = "N"; // we're not going to serialize this type, we'll send a null
}
return ret;
}

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt