div-Container in einer .html-Datei automatisch alle x-Sek. aktualisieren lassen

Begonnen von ThoP, 07 Okt 2012, 13:26

« vorheriges - nächstes »
Nach unten

ThoP

Hallo Community-Gemeinde,
ich habe eine .html-Datei (wird im "content"-Bereich meines Template ausgeführt), deren <div> - Inhalt über eine .php-Datei (eine darin befindliche Smarty-Funktion) befüllt wird.
Dem <div> wurde eine ID zugewiesen.
Nun habe ich leider erfolglos 'zig Codeschnipsel probiert, um diesen <div> Container automatisch neu befüllen zu lassen, jedoch leider ohne Erfolg, mit Sicherheit auch durch meine, doch sehr mangelhaften Kenntnisse in dem Bereich PHP, Javascript, etc. .
Ich habe nun Versuche durchgeführt, Scripte direkt in die .html zu schreiben (mit window.setTimeOut()...setInterval() für den Zeitinterval, sowie den Versuch, den <div> Bereich mittels der vergebenen ID dabei anzusprechen...alles ohne Erfolg.
Dann habe ich 'zig JavaScripte-Codeschnipsel ausprobiert (diese wurden dann mittels "general.js.php") geladen bzw. ausgeführt....leider auch dieses führten nicht zum Erfolg... den <div> Container mit der ID kann ich ja mittels "document.getElementById("meine_Div-ID")" ansprechen (oder???), meistens scheitert es dann an dem .load-Befehl mit der Url-Angabe für die .php-Datei, die intervalmäßig neu geladen werden soll (lt. den Scripten!!! oder muß die nicht neu geladen werden, um den <div> Container neu zu befüllen???), die ja auf meinem Server liegt, aber egal was ich für eine Url dafür angebe (also "meineDomain.de/Unterordner1/Unterordner2/Unterordner3/meineDatei.php"), es funktioniert ebenfalls nicht. Das ist echt zum  :'( ....
Ich wollte den <div> Container eigentlich alle 30 Sek. mit neuen Daten (es handel sich hier um Artikelansichten) befüllen, am liebsten natürlich verbunden, wärend des einladens der Daten, mit einem "fadeOut" und "fadIn"...ok, das ist aber nicht wichtig.
Viel wichtiger ist für mich die Aktualisierung des <div> Containers...
Weiß hier Jemand Rat oder kann mir bezüglich der Deklarierungen ein paar Tipps geben?
Würde mich sehr freuen.

Gruß
Thomas

Luca

Hallo ThoP,  :)
wir aktualisieren Inhalte im div mit einem eigenen iframe und dem Meta-Tag
<meta http-equiv="refresh" content="5; URL=http://de.selfhtml.org/">
im Header. Der Refresh geht dabei auf die url im iframe.
Vielleicht wäre das auch was für Dich. Ansonsten bin ich auch gespannt auf alternative Vorschläge.
Viele Grüße

ThoP

#2
07 Okt 2012, 20:26 Last Edit: 07 Okt 2012, 20:29 by ThoP
Hallo Luca,
erst einmal vielen Dank für Deine Antwort....
Ob diese aber für mich nun zum Erfolg führt, kann ich leider aufgrund meiner mangelnden Programmierkenntnisse nicht sagen, denn ich weiß nicht einmal, wo ich Dein Code-Beispiel eintragen sollte.
Hinter Deinem genannten Content mit der ID "5" verbirgt sich doch z.B. der Content für "Widerrufsbelehrung" oder "AGB", oder was auch immer, richtig?
Ok, vielleicht habe ich es auch falsch erklärt, ...ich möchte keinesfalls die gesamte Seite neu laden, sondern nur den <div> Container... habe einmal zur Veranschaulichung einen Ausschnitt des <div> Container, der durch eine .html-Datei erzeugt wird und im Contentbereich (durch Aufruf/Eintrag in der "main_content.html") beigefügt. Die Daten für den Inhalt der .html-Datei und somit ja auch der <div> Container werden durch eine .php-Datei, in der sich eine Smarty-Funktion befindet, befüllt.
Bei dem ganzen Vorgang handelt es sich um die Anzeige von Produkten aus einer bestimmten Kategorie. Da ich aufgrund der Übersicht aber nur 4 in einer Reihe anzeigen möchte, es sich natürlich wesentlich mehr Produkte in der Kategorie befinden, wollte ich den <div> Container ca alle 30 Sek. "refreshen" / aktualisieren, richtig cool wäre natürlich mit fadeOut ()--> <div> Container neu befüllen --> fadeIn ().
Ich habe hier z. B. folgenden Script gefunden und entsprechend angepaßt:

var updateDiv = function ()
{  
 $.get('meineDomain.de/Unterordner1/Unterordner2/Unterordner3/meineDatei.php',function(d)   Aufruf der .php-Datei, um die Daten neu abzurufen
 {
   $('#meine_DivID').html(d);       Div-ID in der .html-Datei also: <div id="meine_DivID">   Hier soll auch aktualisiert werden
   window.setTimeout(updateDiv, 5000);
 });
};
var deinTimer = window.setTimeout(updateDiv, 5000);


....leider bekomme ich bei der "$.get"-Anweisung bzw. mit der Url-Angabe eine Fehlermeldung im Firebug: "NetworkError: 403 Forbidden - http://www.../.../...", das ist die Pfadangabe, in der sich die .php-Datei auf meinem Webspace befindet.
So langsam bin ich ziemlich ratlos...
Geht das nicht auch ohne Pfadangabe oder gar direkt in der eigentlichen .html-Datei, in der der <div> Container "refresht" werden soll? So habe ich eine .js-Datei erstellt, die entsprechend "hochgeladen" wird...
Vielleicht hat ja Jemand noch eine Idee dazu....

Gruß
Thomas

Lockesoft

*g*
ein Blick auf die von Luca angegebene Seite hätte wahrscheinlich schnell gezeigt, dass bei diesem Tag die Angabe hinter Content die Zeit in Sekunden ist, nach der die Seite neu geladen werden soll.....
*
Ach ja und die Content-Seite mit der Nummer 5 bei Prestashop ist standardmäßig die "Sichere Zahlung" :-)

Btw. es gibt doch genug fertige Javascript-Slideshows. Auch für die featured Products auf der Startseite. Ich wäre da zu faul mir etwas selber zu schreiben, auch wenn ich evtl. die Kenntnisse dazu hätte. Zeit ist hier Geld. :-) Erfinde ich das Rad nochmal, isz das Zeit, die besser investieren kann. Ich bezahle dann lieber den Erfinder des Rades und kann in der gewonnenen Zeit mehr Geld verdienen, als ich da an Aufwand reinstecken müsste. :-)

ThoP

Hallo Lokesoft,
vielen dank für Deinen Beitrag....

....ok, danke..(das mit der Content-ID "5" = "Sichere Zahlung")... es handelt sich hier auch nicht um Presta Shop, habe ich zwar noch auf meinem Webspace installiert, da hierfür allerdings keine Entwickler-Doku vorhanden ist (habe bisher jedenfalls nichts brauchbares gefunden, wo ALLE Funktionen, Deklarationen, Verweise etc. aufgelistet sind...), benutze Ihn daher nicht....

Wird hier nicht  aufgerufen?
Ein ein permanenter Neustart der gesamten Seite (also der Domain-Seite) im Intervall ist natürlich undenkbar, daher geht diese Lösung schon mal nicht....
Klar, wenn ich den Browser ständig aktualisiere wird der <div> Bereich mit neuen Daten gefüllt (also es erscheinen hier 4 neue Produktvorschläge)....aber genau diese neue Befüllung des <div> Bereiches möchte ich gerne automatisch erzeugen lassen (so alle 30 Sek.), ohne eine Aktualisierung der gesamten Seite vornehmen zu müssen...eine Slideshow habe ich im übrigen schon, wollte daher keine weiteren einbinden, sieht ein wenig verwirrend aus, wenn ich noch 8 weitere einbinden würde.

Einmal kurz erklärt, wie das mit dem <div> Bereich(en) funktioniert...
Der <div> Bereich (deklariert in einer .html-Datei) bekommt seine Daten aus einer .php-Datei bzw. die .php-Datei übergibt die Daten an die .html-Datei.... vielleicht gehe ich das ganze auch falsch an und muß in der .php-Datei, wo ja der gesammte Vorgang für die Befüllung der .html-Datei abgearbeitet wird (wie z.B. zugehörige Daten aus der Datenbank ziehen, etc.), eine Anweisung schreiben, diesen Vorgang alle XX Sek. zu wiederholen....wäre das vielleicht die Lösung... nur leider habe ich noch nicht herausgefunden, welche Befehle ich dafür benutze und vor allem wo ich diese einsetzen muß?...ich habe mal den Bereich innerhalb der Datei im letzten Drittel markiert, wo ich glaube, das dort die entsprechende Anweisung für den Wiederholungsintervall rein müßte...vielleicht kann mir hier Jemand einen Tipp geben, wie und wo es klappen könnte...habe dafür mal die .php-Datei, in der die Funktion für die Datenübergabe an die .html-Datei (wird dort als Template deklariert) stehen.

Gruß
Thomas

Luca

Hallo Thomas,
Zitat
Ob diese aber für mich nun zum Erfolg führt, kann ich leider aufgrund meiner mangelnden Programmierkenntnisse nicht sagen, denn ich weiß nicht einmal, wo ich Dein Code-Beispiel eintragen sollte.

Das ist genau mein Problem. Ohne das Du weisst was z.B. ein iframe oder der Head einer html Seite ist, weiss ich nicht wie ich Dir unsere Lõsung erklären könnte.

Hallo Lockesoft,
unser Shopchat wird z.Z. wie oben beschrieben aktualisiert. Wir denken jedoch über Alternativen nach. Es geht da um Seo im Zusammenhang mit der Nutzung von Kontent in iframes. Darum dachte ich, das hier vielleicht alternative Ideen vorgeschlagen werden,die wir in unserem Modul verwenden können.

Viele Grüße an Alle

Nach oben