phpbuddy.eu
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 21.08.2003, 09:57   #1
TP-Moderator
 
Benutzerbild von -Andreas-
 
Registriert seit: Mar 2002
Ort: Landau, Palatinate, Germany
-Andreas- bringt sich richtig ein-Andreas- bringt sich richtig ein

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).
-Andreas- ist offline   Mit Zitat antworten


Alt 21.08.2003, 12:14   #2
TP-Moderator
 
Benutzerbild von -Andreas-
 
Registriert seit: Mar 2002
Ort: Landau, Palatinate, Germany
-Andreas- bringt sich richtig ein-Andreas- bringt sich richtig ein
Haaaaallo ich brauch immer noch hilfe!!!
Das muss doch jemand wissen!!!
__________________
-Andreas- ist offline   Mit Zitat antworten
Alt 21.08.2003, 13:06   #3
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
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.
seb ist offline   Mit Zitat antworten
Alt 21.08.2003, 19:11   #4
TP-Moderator
 
Benutzerbild von -Andreas-
 
Registriert seit: Mar 2002
Ort: Landau, Palatinate, Germany
-Andreas- bringt sich richtig ein-Andreas- bringt sich richtig ein
Und wie krieg ich name1 in den body?
__________________
-Andreas- ist offline   Mit Zitat antworten
Alt 21.08.2003, 19:35   #5
TP-Insider
 
Registriert seit: Jun 2001
Ort: Berlin
deck16 ist auf einem guten Weg
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.
deck16 ist offline   Mit Zitat antworten
Alt 21.08.2003, 20:17   #6
TP-Special Mod
 
Benutzerbild von webmichl
 
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
webmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine User
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...
webmichl ist offline   Mit Zitat antworten
Alt 22.08.2003, 08:58   #7
TP-Moderator
 
Benutzerbild von -Andreas-
 
Registriert seit: Mar 2002
Ort: Landau, Palatinate, Germany
-Andreas- bringt sich richtig ein-Andreas- bringt sich richtig ein
Jo, danke werd ich heut ma probieren!
__________________
-Andreas- ist offline   Mit Zitat antworten
Alt 22.08.2003, 10:19   #8
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
@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
Stuck Mojo ist offline   Mit Zitat antworten
Alt 23.08.2003, 11:29   #9
TP-Moderator
 
Benutzerbild von -Andreas-
 
Registriert seit: Mar 2002
Ort: Landau, Palatinate, Germany
-Andreas- bringt sich richtig ein-Andreas- bringt sich richtig ein
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?
__________________
-Andreas- ist offline   Mit Zitat antworten
Alt 23.08.2003, 14:04   #10
TP-Senior
 
Registriert seit: Aug 2003
Ort: Dresden
Karsten Müller ist auf einem guten Weg
Guten Tag.

Für welche Browser soll denn das Script funktionieren?


Beste Grüße . . . Karsten
__________________
Der Anfang einer jeden Katastrophe ist eine besch...ne Vermutung.

Klaviertransport gefällig? :-)
Karsten Müller ist offline   Mit Zitat antworten
Alt 24.08.2003, 21:31   #11
TP-Moderator
 
Benutzerbild von -Andreas-
 
Registriert seit: Mar 2002
Ort: Landau, Palatinate, Germany
-Andreas- bringt sich richtig ein-Andreas- bringt sich richtig ein
Auf jeden Fall für alle!
__________________
-Andreas- ist offline   Mit Zitat antworten
Alt 25.08.2003, 19:25   #12
TP-Senior
 
Registriert seit: Aug 2003
Ort: Dresden
Karsten Müller ist auf einem guten Weg
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
__________________
Der Anfang einer jeden Katastrophe ist eine besch...ne Vermutung.

Klaviertransport gefällig? :-)
Karsten Müller ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > HTML Puristen
docuement.write - problem docuement.write - problem
« links | DropDown's voneinander abhängig machen »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:28 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



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

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