code will nicht funktionieren
carsten schlichting
- javascript
Hallo
probier jetzt schon eine ganz weile, aber in meinem code ist irgend ein fehler drinn.
Vielleicht sieht das ja jemand.
P-S. ihr könnt auch ganz formlos antworten.
ich les daten aus einem cookie aus und bei den letzten if_schleifen muß der fehler liegen
alert(cookiearray[iterator][0]); funktioniert noch und auch z.B.
document.kontakt.unternehmen.value = cookiearray[4][1];
hier der code:
function form_onload(){
var cookiearray = document.cookie.split(";");
alert(cookiearray);
alert(cookiearray.length);
for (var iterator =0;iterator < cookiearray.length; iterator++){
cookiearray[iterator] = new Array(cookiearray[iterator].split("=")[0], cookiearray[iterator].split("=")[1]);
};
for (var iterator =0;iterator < cookiearray.length; iterator++){
alert(cookiearray[iterator][0]);
if (cookiearray[iterator][0] == "xt_unternehmen"){
document.kontakt.unternehmen.value = cookiearray[iterator][1];
};
if (cookiearray[iterator][0] == "xt_name"){
document.kontakt.name.value = cookiearray[iterator][1];
};
usw. };
also viele Grüße von mir
und danke aufjedenfall
carsten }
hi,
probier jetzt schon eine ganz weile, aber in meinem code ist irgend ein fehler drinn.
P-S. ihr könnt auch ganz formlos antworten.
Könntest du vielleicht etwas weniger formlos fragen - und uns sagen um was für einen Fehler es sich handelt, bzw. wie er sich äußert?
gruß,
wahsaga
Hi und danke schon einmal
Könntest du vielleicht etwas weniger formlos fragen - und uns sagen um was für einen Fehler es sich handelt, bzw. wie er sich äußert?
hier muß der Fehler liegen:
for (var iterator =0;iterator < cookiearray.length; iterator++){
alert(cookiearray[iterator][0]);
if (cookiearray[iterator][0] == "xt_unternehmen"){
document.kontakt.unternehmen.value = cookiearray[iterator][1];
};
if (cookiearray[iterator][0] == "xt_name"){
document.kontakt.name.value = cookiearray[iterator][1];
};
usw. };
die if_schleifen wollen nicht funktionieren: der ausgelesene cookiearray
hat z. B. den wert:
cookiearray[0][0] = xt_unternehmen...so wird es zumindest mit alert ausgegeben.
und der Vergleich in der if_schleife funktioniert nicht.
beides sind doch strings???
grüße carsten
probier jetzt schon eine ganz weile, aber in meinem code ist irgend ein fehler drinn.
Sehr ausführlich und präzise Fehlerbeschreibung, wie soll ein aussenstehender verstehen was du meinst?
Vielleicht sieht das ja jemand.
Mit einer fehlerbeschreibung vielleicht.
alert(cookiearray[iterator][0]); funktioniert noch und auch z.B.
was heißt funktioniert noch?
hier der code:
function form_onload(){
var cookiearray = document.cookie.split(";");
alert(cookiearray);
alert(cookiearray.length);
for (var iterator =0;iterator < cookiearray.length; iterator++){
cookiearray[iterator] = new Array(cookiearray[iterator].split("=")[0], cookiearray[iterator].split("=")[1]);
Was soll das denn?
Mit split() erhälst du bereits ein Array und muss es nicht deklarieren.
Das sollte genau das gleiche machen:
cookiearray[iterator] = cookiearray[iterator].split("=");
Aber hast du dir mal angeschaut was für Werte du dort erhälst?
Stimmt das mit deinen Erwartungen überein?
Struppi.
hallo
habe heute morgen alles noch einmal nach folgendem Link
http://de.selfhtml.org/javascript/objekte/array.htm#assoziative_arrays
verändert.
Der code geht so, aber es tritt immer noch ein Fehler auf ...der ähnlich wie der gestrige zu sein scheint.
function form_onload(){
var cookiearray = document.cookie.split(";");
alert(cookiearray);
alert(cookiearray.length);
for (var iterator =0;iterator < cookiearray.length; iterator++){
cookieobject = new Object();
var xt_tempobj = cookiearray[iterator].split("=")[0];
var xt_tempobj2 = cookiearray[iterator].split("=")[1];
cookieobject[xt_tempobj] = xt_tempobj2;
var xt_tempobj3 = xt_tempobj + "___" + xt_tempobj2;
alert(xt_tempobj3); //das funktioniert
};
alert(cookieobject["xt_unternehmen"]);
document.kontakt.name.value = cookieobject["xt_name"];
document.kontakt.vorname.value = cookieobject["xt_vorname"];
document.kontakt.strasse.value = cookieobject["xt_strasse"];
};
Der Fehler ist..oder es ist eigentlich kein Fehler.... sondern
alert(cookieobject["xt_unternehmen"]);
gibt mir vollkommen unverständlicher Weise undefined aus.
grüße von mir
carsten
for (var iterator =0;iterator < cookiearray.length; iterator++){
cookieobject = new Object();
Du definierst hier cookieobject bei jedem Schleifen durchgang neu, kann das dein Problem sein?
Der Fehler ist..oder es ist eigentlich kein Fehler.... sondern
alert(cookieobject["xt_unternehmen"]);
gibt mir vollkommen unverständlicher Weise undefined aus.
Das ist zumindest mal ein Hinweis gewesen wo dein Problem liegt.
Struppi.
hallo
habe nocheinmal den code verändert weil ich das objekt falsch verstanden habe.
So ist es wahrscheinlich richtiger aber habe noch ein zentrales Problem was die objekte betrifft.
Hier ersteinmal der code:
function form_onload(){
var cookiearray = document.cookie.split(";");
alert(cookiearray);
alert(cookiearray.length);
cookieobject = new Object();
for (var i =0;i < cookiearray.length; i++){
var xt_tempobj = cookiearray[i].split("=")[0];
var xt_tempobj2 = cookiearray[i].split("=")[1];
cookieobject[xt_tempobj] = xt_tempobj2;
var xt_tempobj3 = "_" + xt_tempobj + "___" + xt_tempobj2 + "_";
};
for (var Eigenschaft in cookieobject){
alert(Eigenschaft);
alert(cookieobject[Eigenschaft]);
if(Eigenschaft=="xt_unternehmen")document.kontakt.unternehmen.value = cookieobject[Eigenschaft];
};
};
hier setzt der code nicht das um, was ich möchte:
if(Eigenschaft=="xt_unternehmen")document.kontakt.unternehmen.value = cookieobject[Eigenschaft];
und zwar wollte ich nun direkt auf die "unterobjekte" zugriefen .... wie in diesem beispiel: http://de.selfhtml.org/javascript/objekte/array.htm#assoziative_arrays :
Mitarbeiter[1] = new Object();
Mitarbeiter[1]["Name"] = "Schulze";
Mitarbeiter[1]["Vorname"] = "Frauke";
Mitarbeiter[1]["Wohnort"] = "Berlin";
nur das man anstatt mehreren objekten ein einziges objekt hat mit allen eigenschaften.
dies-->
if(Eigenschaft=="xt_unternehmen")document.kontakt.unternehmen.value = cookieobject[Eigenschaft];
ist jetzt mein Versuch aber die if:Bedingung funktioniert so nicht. Hier müßte man irgendwie anders auf das objekt zugreifen. Möchte quasi nach dem oberen Mitarbeiter_bsp mit if herausfinden, ob die for_schleife gerade Mitarbeiter[1]["Name"]bearbeitet. ____________________________________________________________________________________________________________________
vielleicht kann mir hier ja jemand nocheinmal helfen.
grüße von mir carsten
Hier ersteinmal der code:
function form_onload(){
var cookiearray = document.cookie.split(";");
alert(cookiearray);
alert(cookiearray.length);
cookieobject = new Object();
for (var i =0;i < cookiearray.length; i++){
var xt_tempobj = cookiearray[i].split("=")[0];
var xt_tempobj2 = cookiearray[i].split("=")[1];
Warum der doppelte split?
mach doch einfach:
var xt_tempobj = cookiearray[i].split("=");
Dann kannst du auf xt_tempobj[0] und xt_tempobj[1] zugreifen (sofern vorhanden)
zur Kontrolle solltest du dir auch mal anzeigen lassen was du eigtnlich hier rausbekommst.
vielleicht kann mir hier ja jemand nocheinmal helfen.
Ohne Kenntnisse deiner Datenstruktur nicht. Bisher ergibst du dich nur Andeutungen, wir können nur schwer anhand deiner fehlerhaften Funktion erraten wie du die Daten genau strukturieren willst.
Struppi.
Hi
Warum der doppelte split?
mach doch einfach:
var xt_tempobj = cookiearray[i].split("=");Dann kannst du auf xt_tempobj[0] und xt_tempobj[1] zugreifen (sofern vorhanden)
also das war eine gute Änderung.
ganz unten habe ich den code und auch den code, der das cookie einliest. die if_bedingung funktioniert aus irgend einem grund nicht. und vielleicht liegt das an der datenart??? wenn ich eine andere während der funktion deklarierten variable abfrage funktioniert sie. beim auslesen des cookies muß aus dem array wert "kein" string geworden sein, sondern irgendwas anderes.
was ist denn das für eine Wert_art? und wie kann ich sie verändern oder anders händeln??????
function form_onload(){
var cookiearray = document.cookie.split(";");
alert(cookiearray);
alert(cookiearray.length);
for (var i =0;i < cookiearray.length; i++){
var xt_tempobj = cookiearray[i].split("=");
if(xt_tempobj[0]=="xt_unternehmen"){
alert(xt_tempobj[0]);
document:kontakt.unternehmen.value=var xt_tempobj[1]; };
};
};
function form_onupload(){
var xt_temp1;
xt_temp1 = document.kontakt.unternehmen.value;
document.cookie = "xt_unternehmen=" + xt_temp1;
};
also grüße von mir
carsten
Liest du eigentlich meine Fragen?
var xt_tempobj = cookiearray[i].split("=");
if(xt_tempobj[0]=="xt_unternehmen"){
Kommen hier die Werte raus die du erwartest?
Was ergibt alert(xt_tempobj[0])
document.cookie = "xt_unternehmen=" + xt_temp1;
Wenn du so das cookie setzt wirst du nicht viel Spaß damit haben. Da fehlen noch eine Reihe von Angaben.
Struppi.
hi
Liest du eigentlich meine Fragen?
var xt_tempobj = cookiearray[i].split("=");
if(xt_tempobj[0]=="xt_unternehmen"){
Kommen hier die Werte raus die du erwartest?
Was ergibt alert(xt_tempobj[0])
ich hatte es getestet und es funktionierte.
ich habe es sogar in einen string eingebaut, um zu sehen, ob vorne und hinten whitspace ist:
so ungefähr __xt_unternehmen__
document.cookie = "xt_unternehmen=" + xt_temp1;
Wenn du so das cookie setzt wirst du nicht viel Spaß damit haben. Da fehlen noch eine Reihe von Angaben.
aber das Cookie scheint ganz normal zu sein und mit dieser funktion:
http://www.homepageforum.de/knowhow/cookies.shtml kann ichs auch auslesen.
es wird einen Grund geben, warum man das cookie in dieser art ausließt und nicht mit split. nun funktionierts, aber schade das ich nicht herausgefunden habe wo der fehler lag.
..es liegt auf jedenfall an der if_bedingung( siehe letztes posting)und ich weiß nicht warum.... weil der wert in xt_tempobj[0] irgendwie anders ist.... aber man kanns bei der ausgabe nicht sehen.
grüße aus stuttgart
carsten