 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
21.08.2003, 09:57
|
#1
|
|
TP-Moderator
Registriert seit: Mar 2002
Ort: Landau, Palatinate, Germany
|
docuement.write - problem
Ich mal wieder mit ner Laien Frage 
Warum geht das net?:
PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script>
function liste() {
inhalt=window.document.form1.inhalt.value;
eintraege=inhalt.split("<TR>");
for(i=1; i<eintraege.length; i++) {
eval('eintrag'+i+'=eintraege['+i+'].split(">");');
eval('name'+i+'=eintrag'+i+'[10].split("<")');
eval('bewertungen'+i+'=eintrag'+i+'[12].split("<")');
eval('zweite'+i+'=eintraege['+i+'].split("Datum:</b> ")');
eval('zweites'+i+'=zweite'+i+'[1].split(">")');
eval('datum'+i+'=zweites'+i+'[0].split(" M")');
eval('beurteil'+i+'=zweites'+i+'[8].split("<")');
eval('if(beurteil'+i+'[0]=="Lob") {beurteilung'+i+'="gut"} else { if(beurteil'+i+'[0]=="Neutral") {beurteilung'+i+'="neutral"} else {beurteilung'+i+'="schlecht"}}');
eval('bemerkung'+i+'=zweites'+i+'[10].split("<")');
eval('alert(name'+i+'[0]+" "+bewertungen'+i+'[0]+"\\n"+datum'+i+'[0]+"\\n-----------------------------------\\n"+beurteilung'+i+'+" - "+bemerkung'+i+'[0])');
}
}
</script>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
</head>
<body onload="liste()">
<form name="form1">
<div style="visibility: hidden;">
<textarea name="inhalt"><?echo $inhalt;?></textarea>
</div>
<script>
document.write(name1[0]);
</script>
fggfdsgfdsgdf
</form>
</body>
</html>
Der entscheidende Teil ist document.write(name1[0]);
Als Fehlermeldung kommt: name1 ist undefiniert!
Aber oben hab ichs doch definiert 
Geändert von -Andreas- (21.08.2003 um 10:06 Uhr).
|
|
|
21.08.2003, 12:14
|
#2
|
|
TP-Moderator
Registriert seit: Mar 2002
Ort: Landau, Palatinate, Germany
|
Haaaaallo ich brauch immer noch hilfe!!!
Das muss doch jemand wissen!!!
|
|
|
21.08.2003, 13:06
|
#3
|
|
TP-Veteran
Registriert seit: Jan 2002
|
Abgesehen davon, dass ich diese eval()s nicht ganz verstehe (ist aber möglicherweise unwesentlich, ich kenn nicht alle Anwendungsmöglichkeiten dieser Funktion auswendig) finden sie innerhalb einer Funktion statt.
Falls sie also funktionieren, entsteht name1 im Variablenscope der Funktion und nicht global.
-> Daher kommst du von aussen nicht dran.
|
|
|
21.08.2003, 19:11
|
#4
|
|
TP-Moderator
Registriert seit: Mar 2002
Ort: Landau, Palatinate, Germany
|
Und wie krieg ich name1 in den body?
|
|
|
21.08.2003, 19:35
|
#5
|
|
TP-Insider
Registriert seit: Jun 2001
Ort: Berlin
|
Vielleicht liegt es daran, daß liste() erst aufgerufen wird, wenn die Seite vollständig geladen ist (onload). Das document.write ist ja dann schon abgearbeitet und kann auch keinen wert haben.
|
|
|
21.08.2003, 20:17
|
#6
|
|
TP-Special Mod
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
|
Schmeiss die function und den onLoad-Befehl raus und lass die ganzen Zuweisungen direkt laufen:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script language="JavaScript">
inhalt=window.document.form1.inhalt.value;
eintraege=inhalt.split("<TR>");
for(i=1; i<eintraege.length; i++) {
eval('eintrag'+i+'=eintraege['+i+'].split(">");');
eval('name'+i+'=eintrag'+i+'[10].split("<")');
eval('bewertungen'+i+'=eintrag'+i+'[12].split("<")');
eval('zweite'+i+'=eintraege['+i+'].split("Datum:</b> ")');
eval('zweites'+i+'=zweite'+i+'[1].split(">")');
eval('datum'+i+'=zweites'+i+'[0].split(" M")');
eval('beurteil'+i+'=zweites'+i+'[8].split("<")');
eval('if(beurteil'+i+'[0]=="Lob") {beurteilung'+i+'="gut"} else { if(beurteil'+i+'[0]=="Neutral") {beurteilung'+i+'="neutral"} else {beurteilung'+i+'="schlecht"}}');
eval('bemerkung'+i+'=zweites'+i+'[10].split("<")');
eval('alert(name'+i+'[0]+" "+bewertungen'+i+'[0]+"\n"+datum'+i+'[0]+"\n-----------------------------------\n"+beurteilung'+i+'+" - "+bemerkung'+i+'[0])');
}
</script>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
</head>
<body>
<form name="form1">
<div style="visibility: hidden;">
<textarea name="inhalt"><?echo $inhalt;?></textarea>
</div>
<script>
document.write(name1[0]);
</script>
fggfdsgfdsgdf
</form>
</body>
</html>
Dann sind die Variablen auf der ganzen Seite bekannt...
|
|
|
22.08.2003, 08:58
|
#7
|
|
TP-Moderator
Registriert seit: Mar 2002
Ort: Landau, Palatinate, Germany
|
Jo, danke werd ich heut ma probieren!
|
|
|
22.08.2003, 10:19
|
#8
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
@webmichl: Das wird mit Sicherheit einen Error geben, da "window.document.form1.inhalt.value;" zur Zeit der Zuordnung noch garnicht existiert.
Ehrlich gesagt sehe ich das ganze Script als überflüssig und vollkommen unsinnig. Was bringt es einem, wenn man bei einem Seitenaufruf den Wert aus der Textarea irgendwie zerstückelt und dann einen Wert ausgibt??? Da du an dieser Stelle sowieso PHP nutzt, könntest du das ganze auch in PHP machen.
Ein document.write nachdem die Seite geladen wurde ist sowieso nicht so doll, wenn dann sollte man hier innerHTML oder innerText benutzen.
Und nochmal was zu Variablen im Funktions-Scope. Wird eine Variable in einer Funktion nicht mit var deklariert, so ist sie automatisch im globalen Scope verfügbar - Also sollten deine Variablen schon verfügbar sein.
Gruss
Jan
|
|
|
23.08.2003, 11:29
|
#9
|
|
TP-Moderator
Registriert seit: Mar 2002
Ort: Landau, Palatinate, Germany
|
Nein!
Das PHP kommt raus! Hab leider keine Möglichkeit PHP zu benutzen!
Das ganze läuft über ein kompliziertes Script, das gibt den Wert für die Textarea aus, einen Quellcode, der dann zerstückelt werden muss!
Hat schon seine Gründe so 
Aber gibts gar keine Möglichkeit außer den Schei* in den head zu schreiben?
|
|
|
23.08.2003, 14:04
|
#10
|
|
TP-Senior
Registriert seit: Aug 2003
Ort: Dresden
|
Guten Tag.
Für welche Browser soll denn das Script funktionieren?
Beste Grüße . . . Karsten
|
|
|
24.08.2003, 21:31
|
#11
|
|
TP-Moderator
Registriert seit: Mar 2002
Ort: Landau, Palatinate, Germany
|
Auf jeden Fall für alle!
|
|
|
25.08.2003, 19:25
|
#12
|
|
TP-Senior
Registriert seit: Aug 2003
Ort: Dresden
|
Guten Tag.
Ich hab mal eine gekürzte Variante deiner Seite zum Ausprobieren für dich.
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script>
function liste() {
inhalt=window.document.form1.inhalt.value;
// Schnipp
return inhalt;
}
</script>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="form1">
<div style="visibility: hidden;">
<textarea name="inhalt">
Der Inhalt des versteckten Textfeldes
</textarea>
</div>
<script>
var ausgabetext = liste();
document.write(ausgabetext);
</script>
fggfdsgfdsgdf
</form>
</body>
</html>
Ich hoffe, es hilft dir weiter.
BTW: Bei SelfHTML gibt es im Javascriptbereich auch einen Abschnitt über Funktionen mit Rückgabewerten. Ich hab den URL nicht im Kopf, aber sollte nicht schwer zu finden sein.
Beste Grüße . . . Karsten
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 21:28 Uhr.
|
 |