DIV-Container aktualisieren
Manu
- dhtml
Hallöle!
Hab ewig nach einer Lösung für mein kleines Prob gesucht, aber nichts adäquates gefunden, daher poste ich mal mein Anliegen in der Hoffnung, dass mir einer helfen kann:
Ich habe am Anfang meiner Seite eine Ausgabe, die, nachdem die Seite durchgelaufen ist, automatisch aktualisiert werden soll.
Da ich keinen manuellen Refresh möchte, dachte ich an einen DIV-Container. Das Prob ist nur, wie akualisiere ich den Inhalt ...?
Die Daten kommen per PHP. Hab schon mit getelementbyid rumgespielt, aber JS ist nicht wirklich meine Stärke ;o)
Vielen Dank im Voraus!
Manu
N'Obend
Einen Div kannst du AFAIK nicht einzeln neu laden.
Möglich wär aber eventuell (je nach genauem Problem) was mit iFrames zu machen.
Tschö,
dbenzhuser
Ehm, da kann ich dir leider nicht so ganz zustimmen:
Auf einer anderen Seite habe ich einen mouseover-Effekt, mit dem ich sehr wohl den INHALT des Div-Containers ändern kann:
onmouseover='Javascript:document.getElementById("InfoLayer1").innerHTML = "<?=$sDiv1[$i];?>";
Jetzt habe ich das Prob, das ich bei meinem anderen Fall (zu dem dieses Posting gehört) kein mouseover benutzen kann und suche nach einer anderen Möglichkeit, dieses Dingen zu aktualisieren.
hi,
Auf einer anderen Seite habe ich einen mouseover-Effekt, mit dem ich sehr wohl den INHALT des Div-Containers ändern kann:
onmouseover='Javascript:document.getElementById("InfoLayer1").innerHTML = "<?=$sDiv1[$i];?>";
Jetzt habe ich das Prob, das ich bei meinem anderen Fall (zu dem dieses Posting gehört) kein mouseover benutzen kann und suche nach einer anderen Möglichkeit, dieses Dingen zu aktualisieren.
dann suche dir statt onMouseover eine andere "bedingung", die bei erreichen des von dir formulierten auslösenden kriteriums
Ich habe am Anfang meiner Seite eine Ausgabe, die, nachdem die Seite durchgelaufen ist, automatisch aktualisiert werden soll.
feuert. dazu solltest du zunächst einmal genauer definieren, was du unter dem "durchlaufen" der seite verstehst.
Die Daten kommen per PHP.
dass sie zu dem zeitpunkt, wo sich im client irgendwas abspielt, schon längst "da sein" müssen, ist dir hoffentlich bewusst.
gruss,
wahsaga
okokok, ich erläutere das mal genauer ;o)
Also am "Anfang" der Seite ist ein Status des Users zu sehen. Der User kann nun eine Aktion durchführen - hierdurch werden weiter unten ein paar Funktionen aufgerufen, die den Status verändern, was aber erst beim nächsten Klick zu sehen ist. Mein frommer Wunsch ist jetzt, die Funktionen nicht weiter nach oben (also vor Ausgabe des Status') zu packen, sondern nach dem Aufruf der Funktion den Inhalt des neuen Status-Div-Container zu lösen - das würde mir eine Menge Arbeit ersparen...
Hello again!
Hab leider noch nicht ganz verstanden was du willst, aber als alter Sam&Max-Fan versuch ichs weiter.
Es ist richtig, dass du mit JavaScript den Inhalt eines beliebigen Elementes jederzeit ändern kannst. Allerdings nur wenn dir beim laden der Seite schon bekannt ist in was genau du es ändern willst.
PHP erzeugt auf dem Server die komplette Seite -> versenden an den Benutzer -> Ab jetzt hat die Seite keinerlei Verbindung mehr mit dem Server, alles muss direkt Clientseitig ablaufen. Willst du jetzt wieder was vom Server, musst du die ganze Seite neu laden, nur Teile vom Server anzufordern geht nicht.
Wenn es z.B. um eine Statusänderung von Gast auf Eingeloggt geht, dann würde ich das Serverseitg machen. früher oder später muss der Server das ja eh gesagt bekommen, per JS bleibt keiner über mehrere Seiten eingeloggt.
Bedenke auch, dass Serverseitige Scripts sehr viel zuverlässiger sind als jedes JavaScript, was auf dem Server einmal läuft, dem kannst du ziemlich vertrauen (fehlerfreies Script vorausgesetzt), Clientseitig kann unendlich viel schief laufen.
Ich hab auf meinen Seiten früher auch immer versucht möglichst viel Clientseitig laufen zu lassen, das ist bei einem lahmen Modem manchmal angenehmer. Auf dauer kommst du aber in Teufels küche, weil du die ganze Zeit nur noch damit beschäfigt bist tausende Sonderfälle zu umschiffen, das ist es nicht wert :)
Tschö,
dbenzhuser
Hi dbenzhuser!
Naja, wie ich eben schon einmal zu erklären versucht hab, ist es nur ein Idee gewesen, das Ganze über DHTML zu aktualisieren.
Die Daten sind da - das Prob ist nur, dass ich sie noch nicht habe, wenn der Status an der Reihe ist, sondern erst danach. Das Einfachste wäre natürlich, die Funktionen vor der Ausgabe des Status' zu legen, aber so müßte ich meine mühsam erstellte Funktionen-Datei zerpflücken.
So funktioniert es zwar, aber ich möchte den Refresh ohne mouseover...:
$sDiv1Default = 'Status 1';
....
<div id="Layer1" style="position:absolute; width:80px; height:36px; z-index:1; background-color: #000000;"><?=$sDiv1Default;?></div>
....
//ab hier wird per Funktion die neue Variable gefüllt:
$sDiv1 = 'Status 2';
....
<td .... onmouseover='Javascript:document.getElementById("Layer1").innerHTML = "<?=$sDiv1;?>"; ...usw.
Also Standardmäßig habe ich meinen Status 1, bei onmouseover Status 2.
Soweit, so gut. Meine Frage ist nun, wie schaffe ich es, dass sich der Status ändert, ohne dass ich onmouseover benutze? Javascript ist halt nicht meine Sprache ;o)
hi,
Also Standardmäßig habe ich meinen Status 1, bei onmouseover Status 2.
Soweit, so gut. Meine Frage ist nun, wie schaffe ich es, dass sich der Status ändert, ohne dass ich onmouseover benutze? Javascript ist halt nicht meine Sprache ;o)
ich verstehe das problem immer noch nicht so ganz ...
also, du führst eine javascript-funktion aus, die irgendeinen wert berechnet, und anschliessend wird dann beim mouseover über die tabellenzelle ein anderer teil der seite per JS ausgewechselt?
wenn ja, warum hängst du dann den code, der derzeit onmouseover aufgerufen wird, nicht einfach an die javascript-funktion, die die berechnung ausführt, an ...?
gruss,
wahsaga
argl ;o)
nein, die Daten kommen per php-funktion...
Hiho alle miteinand,
hab mich entschlossen, die PHP-Funktionen umzulagern. Anscheinend kann mir keiner sagen, wie ich eine JavaScript-Funktion im laufenden Betrieb automatisch aufrufe...:o/
cya
Manu
hi,
Anscheinend kann mir keiner sagen, wie ich eine JavaScript-Funktion im laufenden Betrieb automatisch aufrufe...:o/
du hast ja auch immer noch nicht klar definiert, _wann_ das geschehen soll.
gruss,
wahsaga