Vorheriges Thema: Nächstes Thema: |
Autor |
Nachricht |
stuff08 Forumsteilnehmer
Anmeldungsdatum: 17.04.2009 Beiträge: 13
|
Verfasst am: 17.04.2009 15:14:56 Titel: Noob-Frage: document.write ins gleiche document |
|
|
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 |
|
|
Kambfhase Häufiger Poster
Anmeldungsdatum: 19.03.2006 Beiträge: 235
|
Verfasst am: 17.04.2009 15:42:23 Titel: |
|
|
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 |
|
|
stuff08 Forumsteilnehmer
Anmeldungsdatum: 17.04.2009 Beiträge: 13
|
Verfasst am: 20.04.2009 16:57:39 Titel: Geht irgendwie nicht |
|
|
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 |
|
|
Kambfhase Häufiger Poster
Anmeldungsdatum: 19.03.2006 Beiträge: 235
|
Verfasst am: 20.04.2009 19:00:28 Titel: |
|
|
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 |
|
|
stuff08 Forumsteilnehmer
Anmeldungsdatum: 17.04.2009 Beiträge: 13
|
Verfasst am: 21.04.2009 12:41:52 Titel: Klappt |
|
|
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 |
|
|
stuff08 Forumsteilnehmer
Anmeldungsdatum: 17.04.2009 Beiträge: 13
|
Verfasst am: 21.04.2009 16:11:11 Titel: |
|
|
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
Und ohne genaue Angabe wird "Hallo Welt" ans Ende des Forms geschrieben.
Hilfe??? |
|
Nach oben |
|
|
Kambfhase Häufiger Poster
Anmeldungsdatum: 19.03.2006 Beiträge: 235
|
Verfasst am: 21.04.2009 20:12:12 Titel: |
|
|
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 |
|
|
stuff08 Forumsteilnehmer
Anmeldungsdatum: 17.04.2009 Beiträge: 13
|
Verfasst am: 21.04.2009 21:54:27 Titel: |
|
|
Das klingt sowas von logisch und einfach, das es schon wieder zu einfach ist
Ich werds mal probieren.
Wiedermal DANKE
PS:
Wurdest du persönlich für noobs wie mich abgestellt?
Ist ja Super wie schnell das immer geht! |
|
Nach oben |
|
|
Kambfhase Häufiger Poster
Anmeldungsdatum: 19.03.2006 Beiträge: 235
|
Verfasst am: 21.04.2009 22:04:47 Titel: |
|
|
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 |
|
|
stuff08 Forumsteilnehmer
Anmeldungsdatum: 17.04.2009 Beiträge: 13
|
Verfasst am: 27.04.2009 09:31:43 Titel: |
|
|
Hat geklappt.
Besten Dank! |
|
Nach oben |
|
|
stuff08 Forumsteilnehmer
Anmeldungsdatum: 17.04.2009 Beiträge: 13
|
Verfasst am: 27.04.2009 12:13:25 Titel: Weiter gehts :-) |
|
|
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 |
|
|
Kambfhase Häufiger Poster
Anmeldungsdatum: 19.03.2006 Beiträge: 235
|
Verfasst am: 27.04.2009 15:26:27 Titel: |
|
|
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 |
|
|
stuff08 Forumsteilnehmer
Anmeldungsdatum: 17.04.2009 Beiträge: 13
|
Verfasst am: 27.04.2009 20:02:25 Titel: |
|
|
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 |
|
|
Kambfhase Häufiger Poster
Anmeldungsdatum: 19.03.2006 Beiträge: 235
|
Verfasst am: 27.04.2009 20:24:47 Titel: |
|
|
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 |
|
|
stuff08 Forumsteilnehmer
Anmeldungsdatum: 17.04.2009 Beiträge: 13
|
Verfasst am: 04.05.2009 10:24:35 Titel: Läuft leider immer noch nicht |
|
|
Hi.
Die einzige Augabe die sich dabei ergibt ist:
?>';}
-->Also das beenden des Script-Bereiches.
noch eine Idee? |
|
Nach oben |
|
|
|