Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Anfängerfragen ›

[gelöst] Mit jQuery Seitenbereich alle paar Sekunden neu laden

Eingetragen von Nikdilis (29)
am 27.04.2011 - 20:09 Uhr in
  • Anfängerfragen
  • Drupal 7.x

Hallo,

ich möchte, dass ein bestimmter Bereich einer Drupal-Seite per AJAX alle 5 Sekunden neu geladen wird.
Hierzu habe ich folgende Seite gefunden:
http://codekicker.de/fragen/DIV-Inhalt-alle-5-Sekunden-neu-laden-Jquery/411

Unter Drupal bekomme ich das aber leider nicht hin. Wo liegt der Fehler?

Hier der Code. Danke für Eure Hilfe.
Gruß,
Nick Dilis

<?php
drupal_add_library
('system', 'drupal.ajax');
drupal_add_library('system', 'jquery.form');
?>


<div id="test">
<?php
$zufallszahl
= rand(1,100);
return
$zufallszahl;
?>

</div>

<script>
var updateDiv = function ()
{
$('#test').load('http://localhost/d7/content/test-ajax-reload-eines-bestimmten-bereiches', function () {
deinTimer = window.setTimeout(updateDiv, 5000);
});
}
var deinTimer = window.setTimeout(updateDiv, 5000);
</script>

‹ (gelöst)Von Plain Text auf Full HTML Drupal 7 Kommentieren nicht möglich ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Ungeachted des Scriptes,

Eingetragen von drupalino (1064)
am 27.04.2011 - 20:19 Uhr

Ungeachted des Scriptes, welches Du dort postest:

Zitat:

<?php
$zufallszahl
= rand(1,100);
return
$zufallszahl;
?>

Was soll das denn sein?

Und zudem, was ist das überhaupt für ein file, wo Du das ausführst?

Kannst Du PHP und oder jQuery? oder hast Du dir das einfach so "zusammengebastelt" ?

gruss
drupalino

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sollte nur ein Beispiel gewesen sein ...

Eingetragen von Nikdilis (29)
am 27.04.2011 - 23:41 Uhr

also zu meinen Kenntnissen, zugegebenermaßen bin ich bei beiden Programmiersprachen nicht so der Crack, deswegen ja auch meine Frage.
Das PHP-Skript ist nur ein Test und soll den Reload des Bereiches (id: test) überprüfen, indem bei jedem Reload des Bereichs eine neue Zufallszahl ausgegeben wird.
Der Link bzw. das file was Du ansprichst ist die Seite, die den obigen Code enthält. Ziel ist es ja, den Bereich mit der id 'Test' alle 5 Sekunden neu zu laden.
Zusammengeschustert habe ich das mit Hilfe des oben erwähnten Links.

Gruss,
Nikdilis

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: Das PHP-Skript ist nur

Eingetragen von drupalino (1064)
am 28.04.2011 - 08:02 Uhr
Zitat:

Das PHP-Skript ist nur ein Test

aber es ist schon wichtig wo Du den Test ausführst.

Und Dein PHP Schnipsel, wie soll denn das bitte funktionieren? Ein Return in freier Wildbahn????

gruss
drupalino

  • Anmelden oder Registrieren um Kommentare zu schreiben

Kannst Du Dich bitte etwas präziser ausdrücken?

Eingetragen von Nikdilis (29)
am 28.04.2011 - 09:06 Uhr

ansonsten hilfst Du mir nicht wirklich. Wie gesagt, ich bin kein Experte.
Meinem Verständnis nach wird bei dem Reload ein bestimmter Bereich der Seite über den Server neu geladen. Folglich sollte PHP kein Problem darstellen.
Ich mag hier irren, wenn dem so sein sollte, dann bitte ich um hilfreiche Erläuterungen.
Ggf. kannst Du ein Beispiel aufzeigen, wie sich mein Anliegen realisieren lässt.
Damit wäre wahrscheinlich auch anderen geholfen.

Gruß,
Nick Dilis

  • Anmelden oder Registrieren um Kommentare zu schreiben

momentan macht dein snippet

Eingetragen von sth (13)
am 28.04.2011 - 09:49 Uhr

momentan macht dein snippet nicht sonderlich viel sinn. Hier mal ein sinnvolleres Beispiel: (aus dem Kopf getippt, keine Garantie)

<?php
drupal_add_library
('system', 'drupal.ajax');
drupal_add_library('system', 'jquery.form');
?>


<div id="test">
ich werde ersetzt
</div>

<script>
var updateDiv = function ()
{
$('#test').load('http://localhost/d7/ajax_test.php', function () {
deinTimer = window.setTimeout(updateDiv, 5000);
});
}
var deinTimer = window.setTimeout(updateDiv, 5000);
</script>

und hier die ajax_test.php, die von dem Javascript periodisch aufgerufen wird, und deren inhalt dem #test-div übergeben wird:

<?php
$zufallszahl
= rand(1,100);
print
$zufallszahl;
?>

Ich hoffe, so ist es etwas verständlicher.

Wenn man das nun besser mit drupal integrieren will, dann kommt man wohl um ein kleines Modul nicht rum. auf drupal.org gibt es einige ajax-Beispiele zu dem Thema.

--
http://stephanmaximilianhuber.com

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke, funktioniert aber leider auch nicht.

Eingetragen von Nikdilis (29)
am 28.04.2011 - 10:42 Uhr

Fehlermeldung im IE8:
Details zum Fehler auf der Webseite

Benutzer-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Zeitstempel: Thu, 28 Apr 2011 09:40:15 UTC

Meldung: Das Objekt unterstützt diese Eigenschaft oder Methode nicht.
Zeile: 283
Zeichen: 1
Code: 0
URI: http://localhost/d7/content/ddl-test-ajax-reload-eines-bestimmten-bereiches

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ein bisschen Recherche +

Eingetragen von sth (13)
am 28.04.2011 - 11:03 Uhr

Ein bisschen Recherche + Eigeninitiative von Deiner Seite denke ich darf man schon erwarten, normalerweise nehmen die Leute für Ihr Wissen Geld und spielen nicht "wünsch-dir-was".

Anyway, JQuery + Drupal 7 nutzt nicht $ zum ansprechen des jquery-Objekts sondern 'jQuery':

hier das modifizierte Beispiel, das bei mir funktioniert:

<?php
drupal_add_library
('system', 'drupal.ajax');
drupal_add_library('system', 'jquery.form');
?>


<div id="test">
ich werde ersetzt
</div>

<script>
var updateDiv = function ()
{
jQuery('#test').load('<?php print url('ajax_test.php', array('absolute' => TRUE)); ?>', function () {
deinTimer = window.setTimeout(updateDiv, 5000);
});
}
var deinTimer = window.setTimeout(updateDiv, 5000);
</script>

--
http://stephanmaximilianhuber.com

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielen Dank, hier meine funktionierende Lösung...

Eingetragen von Nikdilis (29)
am 28.04.2011 - 11:58 Uhr

habe zwar recherchiert, scheine aber für für Drupal bzw. den Drupal-way ein bisschen zu dusselig zu sein (bin hoffentlich nicht der einzige)
Ich bin mir aber sicher, dass dieses Beispiel anderen eine große Hilfe sein wird.

nun zu meiner -mit Hilfe von sth erstellten- Lösung, in der alle 20 Sekunden der Bereich mit der id 'test' (im Beispiel eine Zufallszahl) neu geladen wird.
Sehr simpel, wenn man weiß wie es geht! ;-)

<div id="test">
<?php
$zufallszahl
= rand(1,100);
print
$zufallszahl;
?>

</div>

<script>
var updateDiv = function ()
{
// #test stellt sicher, dass nur dieser Bereich neu geladen wird.
jQuery('#test').load('<?php print url('http://localhost/d7/content/ddl-test-ajax-reload-eines-bestimmten-bereiches #test', array('absolute' => TRUE)); ?>', function () {
Timer = window.setTimeout(updateDiv, 20000);
});
}
var Timer = window.setTimeout(updateDiv, 20000);
</script>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sauberere Drupal7 Lösung

Eingetragen von Nikdilis (29)
am 29.04.2011 - 12:10 Uhr

Siehe auch:
http://t6.forward-media.de/blog/drupal-7-tutorial-javascript-richtig-ein...

Alle 20 Sekunden wird der Bereich mit der id 'test' (im Beispiel eine Zufallszahl) neu geladen.
<div id="test">
<?php
$zufallszahl
= rand(1,100);
print
$zufallszahl;
?>

</div>

<script>

//Beginn Einbinden von jQuery-Code in Drupal 7
(function ($) {

//Beginn jQuery-Code
var updateDiv = function ()
{
$('#test').load('http://localhost/d7/content/ddl-test-ajax-reload-eines-bestimmten-bereiches #test', function () {
Timer = window.setTimeout(updateDiv, 20000);
});
}
var Timer = window.setTimeout(updateDiv, 20000);
//Ende jQuery-Code

//Ende Einbinden von jQuery-Code in Drupal 7
})(jQuery);

</script>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Nach Update von 8.9.20 auf 9.3.2: You have requested a non-existent service "entity.manager"
  • Nach Update von 8.9.20 auf 9.3.0: SQL-Fehlermeldung beim Bearbeiten von nodes
  • Fragen zum Aufsetzen von neuen Multisites
  • website encountered an unexpected error
  • [gelöst]Anmeldebutton
  • Nachrichtenticker
  • Cache-Problem nach Upload von Local auf Server
  • Wie kann ich PDF-Anlage eines Beitrags mittels Alias aufrufen?
  • Entität die man einfügt Umfliessend darstellbar?
  • Commerce : order is throwing PHP error
  • Feld (PDF) mit benutzerdefinierten Link überschreiben funktioniert nicht
  • (Gelöst,...) Linkdatenbank, Link einmal erstellen, überall Einpflegen?
Weiter

Neue Kommentare

  • drupgeorg schrieb Ich habe
    vor 11 Stunden 2 Minuten
  • upgrade_status Modul
    vor 11 Stunden 24 Minuten
  • kein exif Modul installiert
    vor 11 Stunden 28 Minuten
  • entity.manager ist in Drupal
    vor 11 Stunden 29 Minuten
  • Der patch aus dem Link hat
    vor 14 Stunden 53 Minuten
  • Ich hatte beim Upgrade auch
    vor 15 Stunden 5 Minuten
  • ja sicher - und auch Cache
    vor 15 Stunden 15 Minuten
  • Datenbank Update unter
    vor 15 Stunden 26 Minuten
  • Vielen Dank für deinen
    vor 16 Stunden 59 Minuten
  • Sammelzwerg schrieb Hast du
    vor 2 Tagen 12 Stunden

Statistik

Beiträge im Forum: 247380
Registrierte User: 19325

Neue User:

  • Lestat deLioncourt
  • kutikovasa
  • Don Pedro

» Alle User anzeigen

User nach Punkten sortiert:
wla9155
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3845
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 3 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association