Neu im Fenster ohne refresh

themonk

Erfahrenes Mitglied
Hallo
kennt jemand einen Java Script Code, wo man etwas ohne refreshen ändern kann.
Also wenn jetzt jemand in einem Text Feld Hallo schreibt, soll ein Befehl ausgelöst werden der dann eine Tebelle erstellt mit dem Namen Hallo. Wenn jetzt jemand das löschen will, muss er nur auf ein Symbol hinter dem Text klicken und das Ganze geht dann weg. Aber das Ganze soll ohne Neuladen der Seite gehen und mit einer DB.
 
Hallo themonk,

... also ich habe keine Schwierigkeiten den Quellcode einzusehen. Auf dieser Seite ist nur "Beispiel" und "Quellcode" (vielleicht versehentlich) der gleiche Link: http://www.bangsow.de/javascript/textdatenbank.html . Und wenn man diese Datei geöffnet hat kann man im Browser mit der Tastenfolge "Ansicht | Seitenquelltext anzeigen" den Quellcode einsehen. Den Quellcode der zugehörigen JavaScript-Datei öffnet man ebenso, wie die Datei heisst steht ja im Header o.g. HTML-Datei.

Du hast sicherlich gelesen, dass es eben keine richtige Datenbank ist, sondern die angezeigten Daten in Excel mit einem VBA-Script als Text erzeugt werden. Diesen Text übergibst du als JavaScript-Variable mit der HTML-Datei und unter der Voraussetzung dass der User bzw. Client im Browser JavaScript aktiviert hat kann er dann sehen, welche Daten du in deiner Excel-Datei stehen hast und kann auch in diesen Daten suchen.

In diesem Script ist (wahrscheinlich absichtlich) auch keine Funktion enthalten, die eine clientseitige Erweiterung des "Datenbestandes" vorsieht. Denn JavaScript ist nach meinen Kenntnissen als Einbahnstrasse Server ==> Client gedacht und auch so gestrickt worden. Wenn du also irgendwo ein Hintertürchen kennst, mit dem du clientseitige Änderungen des "Datenbestandes" auf deinen Server kriegst, dann kannst du sie auch allen anderen Usern zur Verfügung stellen.
 
Es geht auch mit echten Datenbanken
man nehme....
  • eine Seite mit einem versteckten Frame
  • ein Formular mit einem Textefeld, dessen Zielfenster dieses versteckte Frame ist
  • Das Formularziel holt im Hintergrund die Daten aus der DB und erzeugt den JS-Code, um diese (wohin auch immer) zu schreiben.
 
Das Formularziel holt im Hintergrund die Daten aus der DB und erzeugt den JS-Code, um diese (wohin auch immer) zu schreiben.
ja ok so weit verstanden nur wie muss der JS-Code aussehen und wie bekomme ich diesen in den richtigen Frame?
 
Das Senden in das versteckte Frame geht ohne JS... gib im Formular einfach den Namen des Frames als "target" an.

Das Skript, welches die Daten empfängt, sollte eine blanko HTML-Seite mit einem JS-Code produzieren, welcher ca. so aussieht:
Code:
<script type="text/javascript>
<!--
strHtml='<table><tr></td>'+unescape('<?php echo rawurlencode('$deinText');?>')+</td></tr><table>';
top.nameDesFrames.document.getElementById('idDesElementesWoDieTabelleReinSoll').innerHTML=strHTML;
//-->
</script>
...so in der Art.
 
Hilfe ich kanns nicht :confused:
Also ich habe 3 Frames. Ein Frame wo der Text angezeigt wird, einen wo er geschrieben wird und einen wo nichts drin ist(leer.htm).
Im Frame wo geschriben wird habe ich ein Formular mit target="leer".
Im Frame wo nichts ist soll dieser Js-code erzeugt werden .
idDesElementesWoDieTabelleReinSoll
die Id soll dann mit <div id="3"> in dem Frame sein wo der text später stehen soll.
Ist das so richtig?
Oder muss zwischen durch noch was in die Datenbank?



Das Ganze müsste doch auch in einem Frame so gehen
PHP:
<script type="text/javascript">
<!--

strHtml='<table><tr></td>'+unescape(Hallo')+</td></tr><table>';
top.nameDesFrames.document.getElementById('3').innerHTML=strHTML;
//-->
</script>


<div id="3">


</div>
dann müsste unten in der Tabelle Hallo stehen
 
Zuletzt bearbeitet:
Vom Prinzip her richtig, sind nur ein paar Flüchtigkeitsfehler drinnen...

  • strHTML ist nicht dasselbe wie strHtml(javascript unterscheidet Gross/Kleinschreibung)
  • nen paar Singlequotes vergessen


Das Ganze müsste doch auch in einem Frame so gehen
...nicht ganz.... die "leer"-Seite, also die, wohin das Formular gesendet wird, muss einzeln laufen... sonst wird sie ja sichtbar "refreshed".


So haut es hin:
Code:
<script type="text/javascript">
<!--
strHTML='<table><tr></td>'+unescape('Hallo')+'</td></tr><table>';
top.textausgabe.document.getElementById('3').innerHTML=strHTML;
//-->
</script>

(wobei eine ID jedoch nicht mit einem Buchstaben beginnen sollte...könntest du optimalerweise noch ändern)
 
Zurück