Gästebuch Problem
so nochmal ich. habe jetzt mein Gästebuch mittels JSON Arrays und XMLHTTPRequest eingebunden das funzt auch prima zumindest im Firefox im IE 7 macht er dagegen garnichts hier mein code:
das gb:
und hier die gbdaten.txt
und die http.js
das gb:
|
|
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
<html>
<head>
<title>JavaScript</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="http.js"></script>
<script type="text/javascript">
var xhr;
window.onload = function() {
xhr = http();
xhr.open("GET", "gbdaten.txt", true);
xhr.onreadystatechange = datenAusgeben;
xhr.send(null);
};
function datenAusgeben() {
if (xhr.readyState == 4) {
var rueckgabe = xhr.responseText;
var objekt = eval("(" + rueckgabe + ")");
var text='';
for (var index in objekt) {
var element = objekt[index];
var name = element.name;
var email = element.email;
var homepage = element.homepage;
var datum = element.datum;
var zeit = element.zeit;
var comment = element.comment;
text+='<div id="entry">';
text+='<div id="name">'+name+'</div><div id="tbar">';
text+='<table width="460" border="0" cellspacing="0" cellpadding="0" ><tr>';
text+='<td height="27" background="images/Bilder/Unbenannt-1_01.gif" id="date">vom '+datum+' um '+zeit+'</td></tr><tr>';
text+='<td height="39" valign="top" background="images/Bilder/Unbenannt-1_02.gif" id=text>'+comment+'</td></tr> <tr>';
text+='<td height="27" background="images/Bilder/Unbenannt-1_04.gif" id="ehp"><div align="right">';
text+='<a href="mailto:'+email+'">Email</a> <a href="'+homepage+'">Homepage</a></div></td></tr></table></div></div><br><br>';
document.getElementById("p").innerHTML = text;
}
}
}
</script>
<style type="text/css">
<!--
#text {
padding-right: 10px;
padding-left: 10px;
font-family: Arial, Helvetica, sans-serif;
color: #666666;
}
#ehp {
padding-right: 30px;
font-family: Arial, Helvetica, sans-serif;
font-size: 11px;
color: #990000;
font-weight: bold;
}
#entry {
width: 600px;
background-image: url(images/gb_entry.gif);
background-repeat: no-repeat;
}
#tbar {
display: block;
margin-top: 30px;
margin-left: 90px;
width: 460px;
}
#name {
font-family: Impact, "Arial Black", Arial;
font-size: 24px;
}
a {
text-decoration:none;
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
color:#333333;
}
a:hover{
text-decoration:none;
border-bottom-width: 1px;
border-bottom-style: dotted;
border-bottom-color: #ff9900;
}
#date {
padding-left: 20px;
font-family: Arial, Helvetica, sans-serif;
font-size: 10px;
color: #000000;
font-weight: bold;
}
-->
</style>
</head>
<body>
<h1>AJAX</h1>
<p id="p"></p>
</body>
</html>
|
und hier die gbdaten.txt
|
|
Quellcode |
1 2 3 4 5 6 7 8 |
[
{"name": "dasf", "email":"", "homepage": "", "datum": "08.11.2007" , "zeit": "16:49:1", "comment": "dsf"} ,
{"name": "dasf", "email": "","homepage": "", "datum": "08.11.2007" , "zeit": "17:22:0", "comment": "dasf"} ,
{"name": "dasf", "email": "","homepage": "", "datum": "08.11.2007" , "zeit": "17:22:0", "comment": "dasf"} ,
{"name": "dasf", "email": "","homepage": "", "datum": "08.11.2007" , "zeit": "17:22:0", "comment": "dasf"} ,
{"name": "dsfa", "email": "","homepage": "", "datum": "08.11.2007" , "zeit": "17:23:1", "comment": "dasf"} ,
{"name": "dsfa", "email": "","homepage": "", "datum": "08.11.2007" , "zeit": "17:23:1", "comment": "dasf"}
]
|
und die http.js
|
|
Quellcode |
1 2 3 4 5 6 7 8 9 |
function http() {
var http;
if (window.XMLHttpRequest) {
http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
http = new ActiveXObject("Microsoft.XMLHTTP");
}
return http;
}
|
http://www.die-schaumschlaeger.de/album/json.php
EDIT:
Außerdem hab ich noch ein problem mit JSON und zwar macht mein kommentarfeld automatisch zeilenumbrüche kann ich irgenwie jedesmal wenn der einen zeilenumbruch macht ein <br> reinschreiben sonst funzt das net?
EDIT:
Außerdem hab ich noch ein problem mit JSON und zwar macht mein kommentarfeld automatisch zeilenumbrüche kann ich irgenwie jedesmal wenn der einen zeilenumbruch macht ein <br> reinschreiben sonst funzt das net?
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »jasminkaemmi« (13. November 2007, 23:45)
RE: Gästebuch Problem
Hi jasminkaemmi,
die http.js ist suboptimal.
Verwende dieses Sniplet:
Weiterhin kann der Browser meckern wenn die seite zu langsam geladen wird!
Die Methode Onload verweist auf die Funktion datenAusgeben, weil aber die Seite noch nicht vollständig geladen wurde, ist die methode "datenAusgeben" noch nicht bekannt.
Ich empfehle die Verwendung von einem Framework wie "Prototype".
Zur "for-in" schleife. Diese könnte die Java-Script Funktionalitäten deaktivierien bei lese-/schreibgeschützten attributen.
Nochmal zu for-each:
die Variable index enthält keinen Index, sondern eine Methode, objekt oder Attribut - also teil der Menge aus Objekt. Das was du "element" zuweisen must ist nicht "objekt[index]" sondern "index".
Die Notation aus JSon ist falsch, das Array ist ok, alle definierten Objekte sind falsch.
Ein Objekt wird nicht durch {"stimmung":"gut"} sondern durch {stimmung:"gut"} definiert.
Siehe testcase: javascript: var o={h:'wert'};alert(o.h);
Ich find gut das du dich damit beschäftigst, javascript ist aber anfangs ein hartes Pflaster! Hardcore Javascript läst sich nicht aus dem Ärmel schütteln.
die http.js ist suboptimal.
Verwende dieses Sniplet:
|
|
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 |
// Gecko / IE7
if ( typeof(XMLHttpRequest) != 'undefined' )
return new XMLHttpRequest() ;
// IE6
try { return new ActiveXObject("Msxml2.XMLHTTP") ; }
catch(e) {}
// IE5
try { return new ActiveXObject("Microsoft.XMLHTTP") ; }
catch(e) {}
|
Weiterhin kann der Browser meckern wenn die seite zu langsam geladen wird!
Die Methode Onload verweist auf die Funktion datenAusgeben, weil aber die Seite noch nicht vollständig geladen wurde, ist die methode "datenAusgeben" noch nicht bekannt.
Ich empfehle die Verwendung von einem Framework wie "Prototype".
Zur "for-in" schleife. Diese könnte die Java-Script Funktionalitäten deaktivierien bei lese-/schreibgeschützten attributen.
Nochmal zu for-each:
die Variable index enthält keinen Index, sondern eine Methode, objekt oder Attribut - also teil der Menge aus Objekt. Das was du "element" zuweisen must ist nicht "objekt[index]" sondern "index".
Die Notation aus JSon ist falsch, das Array ist ok, alle definierten Objekte sind falsch.
Ein Objekt wird nicht durch {"stimmung":"gut"} sondern durch {stimmung:"gut"} definiert.
Siehe testcase: javascript: var o={h:'wert'};alert(o.h);
Ich find gut das du dich damit beschäftigst, javascript ist aber anfangs ein hartes Pflaster! Hardcore Javascript läst sich nicht aus dem Ärmel schütteln.
Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von »nocturne« (14. November 2007, 09:42)
so jetzt funzt es auch im internetexplorer musste nur stat <p> ein <div> element nehmen! hab aber jetzt noch ein problem die json datei funktioniert nicht sobald ich in der datei einen zeilenumbruch drin hab!
also ich erstelle meine json datei dynamisch mit php aus einer mysql tabelle heraus und der eintrag comment ist nunmal mit leerzeichen! und dann glabt das ganze nicht mehr
also ich erstelle meine json datei dynamisch mit php aus einer mysql tabelle heraus und der eintrag comment ist nunmal mit leerzeichen! und dann glabt das ganze nicht mehr
Zeilenumbrüche in JSON müssen javascript killen, da javascript nach einem Zeilenumbruch einen neuen Befehl erwartet und JSON nun mal aus javascript Literal-objekten entstand.
JSON="JavaScript Object Notation"
Wie baust du denn das JSON zusammen? Von hand oder über die seit php 5.2 integrierte Funktion: json_encode()
Du könntest über die Funktion nl2br()eeventuell alle Zeilenumbrüche schnell in br's umwandeln, falls obige Funktion nicht weiterhilft.
JSON="JavaScript Object Notation"
Wie baust du denn das JSON zusammen? Von hand oder über die seit php 5.2 integrierte Funktion: json_encode()
Du könntest über die Funktion nl2br()eeventuell alle Zeilenumbrüche schnell in br's umwandeln, falls obige Funktion nicht weiterhilft.
hi, so hab jetzt das problem mit dem jason umbruch hinbekommen! hab mir eine fertige json codierungs klasse aus dem internet heruntergeladen!
hab leider jetzt ein neues problem und zwar kann gibt der firefox keinen eintrag mehr aus im internet explorer gehts komischer weise.
der link ist: http://www.greenorange-band.de/go/?site=gb
liegt das vielleicht am xmlhttprequest?
meine xttp.js sieht so aus:
stimmt das?
Edit:
Hat sich erledigt musste zum aufruf die methode GET nehmen nicht POST
hab leider jetzt ein neues problem und zwar kann gibt der firefox keinen eintrag mehr aus im internet explorer gehts komischer weise.
der link ist: http://www.greenorange-band.de/go/?site=gb
liegt das vielleicht am xmlhttprequest?
meine xttp.js sieht so aus:
|
|
Quellcode |
1 2 3 4 5 6 7 8 9 |
function http() {
var http;
if (window.XMLHttpRequest) {
http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
http = new ActiveXObject("Microsoft.XMLHTTP");
}
return http;
}
|
stimmt das?
Edit:
Hat sich erledigt musste zum aufruf die methode GET nehmen nicht POST
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »jasminkaemmi« (30. November 2007, 00:20)


