HTMLWorld - HTML, CSS, JavaScript, PHP, Java, Flash und vieles mehrHTMLWorld:   Home | Impressum
 

 
 

Anzeige 
 
HTMLWorld » Forum

Thema anzeigen - Noob-Frage: document.write ins gleiche document

 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Noob-Frage: document.write ins gleiche document
Gehe zu Seite 1, 2  Weiter
 

Neues Thema eröffnen   Neue Antwort erstellen    HTMLWorld Foren-Übersicht
   JavaScript
Vorheriges Thema:
Nächstes Thema:  
Autor Nachricht
stuff08
Forumsteilnehmer


Anmeldungsdatum: 17.04.2009
Beiträge: 13

BeitragVerfasst am: 17.04.2009 15:14:56    Titel: Noob-Frage: document.write ins gleiche document Antworten mit Zitat

Hallo.
Ich bin ein totaler JS-Noob und brauche eure Hilfe.
Wenn ich die unten angegebene Seite öffne und dann das Eingabefeld ändere startet auch das javascript. - Soweit OK.

Problem:
Die Ausgabe wird immer in ein neues Dokument gepackt.
Ich möchte die Ausgabe gerne unter den alten Text - also ins gleiche Dokument haben.

Irgendwelche (leicht verstänliche) Ideen dazu?

Danke im Vorraus!


Code:
<html>
   <head>
   
   <script type='text/javascript'>
         function deklarieren()
         {
         anz= document.form1.anzahl.value;
         }
         
         function schreiben()
         {
         var start=1;
         while (start <= anz)
            {
            this.window.document.write("test" + start);
            start++;
            }
         }
         </script>
   
   
   </head>
   
   <body>
      <form name=form1 action=â€selfâ€>
         <input type="text" name="anzahl" value=""  onchange="deklarieren(); schreiben();">
         <input type="button" name="button" value="Anzahl LUNS">
         
         <script type='text/javascript'>
            schreiben();
         </script>
         
      </form>         
   </body>
</html>
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Kambfhase
Häufiger Poster


Anmeldungsdatum: 19.03.2006
Beiträge: 235

BeitragVerfasst am: 17.04.2009 15:42:23    Titel: Antworten mit Zitat

document.write() leert das momentane Document komplett.

Wenn du einfach nur etwas hinzufügen willst kannst du das zB über element.innerHTML machen.

dh. gib deinem body die Id "body" dann kannst du
via "document.getElementById('body').innerHtml += 'Hallo welt' " was schreiben.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
stuff08
Forumsteilnehmer


Anmeldungsdatum: 17.04.2009
Beiträge: 13

BeitragVerfasst am: 20.04.2009 16:57:39    Titel: Geht irgendwie nicht Antworten mit Zitat

Hallo und danke für die schnelle antwort.

Hab das mal in einem Super-Simpel html-code ausprobiert.

Bei passiert dsa rein garnichts. (Niocht mal eine Fehlermldung)


Code:
<head>

<body id="body">
   <form>
   <input type=text onchange='document.getElementById("body").innerhtml += "hallo welt"; '>
   
   bla bla
   
   </form>
</body>

</head>
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Kambfhase
Häufiger Poster


Anmeldungsdatum: 19.03.2006
Beiträge: 235

BeitragVerfasst am: 20.04.2009 19:00:28    Titel: Antworten mit Zitat

JS ist case-sensitive. Dh. es achtet auf Groß- und Kleinschreibung. Zu dem ist onchange ein bisschen willkürlich.

So klappt's: (getestet mit FF3.1b3)
Code:
<html>
<head>
</head>
<body id="body">
   <a href="javascript:document.getElementById('body').innerHTML += 'Hallo Welt!\n';void(0);">bla bla</a>
</body>
</html>
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
stuff08
Forumsteilnehmer


Anmeldungsdatum: 17.04.2009
Beiträge: 13

BeitragVerfasst am: 21.04.2009 12:41:52    Titel: Klappt Antworten mit Zitat

Hi und nochmal Danke für die schnelle Antwort.


Dein Code funktioniert.
Ich werde mal schauen, wie ich das in Fomular einbauen kann.


DANKE!!!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
stuff08
Forumsteilnehmer


Anmeldungsdatum: 17.04.2009
Beiträge: 13

BeitragVerfasst am: 21.04.2009 16:11:11    Titel: Antworten mit Zitat

Soooo....

Habs getested und es geht auch auf der richtigen seite.

ABER...nächstes Problem:

Ich habe mehrere Fieldsets definiert und jedem eine ID gegeben.

Der Button ist im Formular "FORM1" und da im Fieldset "LUNS" und ich dachte in meiner naiven Art, ich könnte jetzt schreiben:

Code:
<input type="text" value="" name="ANZAHL" size="2" onchange="javascript:document.getElementById('body.FORM1.LUNS').innerHTML += 'Hallo Welt!\n';">


oder auch

Code:
<input type="text" value="" name="ANZAHL" size="2" onchange="javascript:document.getElementById('body').innerHTML.body.FORM1.LUNS += 'Hallo Welt!\n';">


Beides geht natürlich nicht Sad
Und ohne genaue Angabe wird "Hallo Welt" ans Ende des Forms geschrieben.

Hilfe???
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Kambfhase
Häufiger Poster


Anmeldungsdatum: 19.03.2006
Beiträge: 235

BeitragVerfasst am: 21.04.2009 20:12:12    Titel: Antworten mit Zitat

stuff08 hat folgendes geschrieben:
Der Button ist im Formular "FORM1" und da im Fieldset "LUNS" und ich dachte in meiner naiven Art, ich könnte jetzt schreiben:

Code:
<input type="text" value="" name="ANZAHL" size="2" onchange="javascript:document.getElementById('body.FORM1.LUNS').innerHTML += 'Hallo Welt!\n';">


Jetzt sucht das Skript nach einem Element mit der Id "body.FORM1.LUNS". zB.:
<img id="body.FORM1.LUNS" src="blub.jpg" />


stuff08 hat folgendes geschrieben:
Code:
<input type="text" value="" name="ANZAHL" size="2" onchange="javascript:document.getElementById('body').innerHTML.body.FORM1.LUNS += 'Hallo Welt!\n';">


Da klappt nicht, weil du das Element mit der Id 'body' nimmst. ( In deinem Fall zufällig der Body) dann greifst du auf dessen Quelltext zu( innerHTML). Der Quelltext ist ein String und hat von daher kein Attribut "body".

Btw, bei onChange kannst du das "javascript:" weglassen.

Um im Fieldset mit dem namen "LUNS" zuschreiben kannst du es einfach auswählen:

Code:
document.getElementsByName('LUNS')


mit .innerHTML greifst du dann auf den Quelltext zu und fügst 'Hallo Welt' ran.

Code:
document.getElementsByName('LUNS').innerHTML += 'Hallo Welt!';
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
stuff08
Forumsteilnehmer


Anmeldungsdatum: 17.04.2009
Beiträge: 13

BeitragVerfasst am: 21.04.2009 21:54:27    Titel: Antworten mit Zitat

Das klingt sowas von logisch und einfach, das es schon wieder zu einfach ist Smile

Ich werds mal probieren.
Wiedermal DANKE Smile

PS:
Wurdest du persönlich für noobs wie mich abgestellt?
Ist ja Super wie schnell das immer geht!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Kambfhase
Häufiger Poster


Anmeldungsdatum: 19.03.2006
Beiträge: 235

BeitragVerfasst am: 21.04.2009 22:04:47    Titel: Antworten mit Zitat

Sorry, ich sehe gerade, da ist noch ein Fehler drinne.

getElementsByName('LUNS') könnte theoretisch mehrere Elemente mit dem Namen 'LUNS' zurückliefern, deswegen muss da noch .item(0) ran:

... getElementsByName('LUNS').item(0).innerHTML ...

logisch ist es und noch ist es einfach. Sobald du aber Sachen entfernen oder verschieben willst etc. wird es evntl hart.

Für so einen Post brauche ich 5 Minuten. Die kann man gut und gerne Opfern.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
stuff08
Forumsteilnehmer


Anmeldungsdatum: 17.04.2009
Beiträge: 13

BeitragVerfasst am: 27.04.2009 09:31:43    Titel: Antworten mit Zitat

Hat geklappt.

Besten Dank!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
stuff08
Forumsteilnehmer


Anmeldungsdatum: 17.04.2009
Beiträge: 13

BeitragVerfasst am: 27.04.2009 12:13:25    Titel: Weiter gehts :-) Antworten mit Zitat

Danke bis hierhin!....

Kannst dir/irgendjemand mir sagen warum das hier nicht funtioniert?

Mein Plan:
Wenn ich auf einen Button klicke, soll ein Teil eines Formulars eingebunden werden....
Das soll auch mehrere male gehen...
Im Script sollen dann noch Parameter geändert werden (ID, Value etc.)...

Das Parameterändern bekomme ich hin (hoffe ich), aber das einfügen eines fertigen "Bausteins" über include geht leider nicht.
(normalen text anstelle von include einfügen geht)

Code:

<fieldset id="LUNS">      
      <legend>Disk requirement</legend>
         <input type="button" value="ADD LUN" name="ANZAHL" size="2" onclick="LUNADD()"></br>
            
            <!--onclick="javascript:document.getElementById('LUNS').innerHTML += 'Hallo Welt!\n';"-->
            
         <script LANGUAGE="JavaScript">
         <!--
         function LUNADD() {
            document.getElementById('LUNS').innerHTML += <? include "lunadd_form.php" ?>;            
            }
         // -->
         </script>
      
   </fieldset>
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Kambfhase
Häufiger Poster


Anmeldungsdatum: 19.03.2006
Beiträge: 235

BeitragVerfasst am: 27.04.2009 15:26:27    Titel: Antworten mit Zitat

moin,

Code:
document.getElementById('LUNS').innerHTML += <? include "lunadd_form.php" ?>;


Benutzt du php? Oder ist das eine Eigenkreation von dir?
include ist nämlich kein JavaScript Befehl!


MfG Hase

/siehe hiermit meine PN als nichtig an!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
stuff08
Forumsteilnehmer


Anmeldungsdatum: 17.04.2009
Beiträge: 13

BeitragVerfasst am: 27.04.2009 20:02:25    Titel: Antworten mit Zitat

Ja das soll php sein.

Ich habe den Teil des Formulars ausgelagert, damit ich es nur "includen" muss anstatt den Quelltext 5x zu schreiben.

Meine Idee war, das ich statt "Hello World" einfach diese Datei/Formularteil include.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Kambfhase
Häufiger Poster


Anmeldungsdatum: 19.03.2006
Beiträge: 235

BeitragVerfasst am: 27.04.2009 20:24:47    Titel: Antworten mit Zitat

Dann musst du das so machen:

Code:
document.getElementById('LUNS').innerHTML += '<?php include "lunadd_form.php" ?>';


denk daran auch der momentanen Datei die Endung .php zu geben.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
stuff08
Forumsteilnehmer


Anmeldungsdatum: 17.04.2009
Beiträge: 13

BeitragVerfasst am: 04.05.2009 10:24:35    Titel: Läuft leider immer noch nicht Antworten mit Zitat

Hi.

Die einzige Augabe die sich dabei ergibt ist:

?>';}

-->Also das beenden des Script-Bereiches.

noch eine Idee?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    HTMLWorld Foren-Übersicht
   JavaScript
Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.