1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

div-Klasse, die php-Datei inkludiert, automatisch neu laden

Dieses Thema im Forum "Konfiguration" wurde erstellt von floffimedia, 23. Juni 2009.

  1. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Bei include sollte ein Serverpfad hin. Wie gesagt, __FILE__ sollte in die Richtung gehen, dirname() könnte helfen, in $_SERVER stehen auch nützliche Angaben.
    Für include mit URLs brauchts einen Wrapper der bei dir aber nicht verfügbar ist. ;)

    Und zum prinzipiell noch, dann mach ich Schluss für heute: Per Ajax lädst du eben nur den Inhalt nach, der dann in das <div> eingefügt werden soll. Dein PHP-Script, was du per Ajax-Request (im Prinzip eben ein einfacher GET-Request) aufrufst, sollte also ausschließlich dieses HTML-Fragment zurück liefern, was später im <div> landen soll. Eventuell solltest du die Funktion auf mehrere Scripte aufteilen - eins zum Includen in WP, eins für den Ajax-Request usw.

    *Arno zustimm und seinen Rat jetzt auch umsetz* :D
     
  2. floffimedia

    floffimedia Well-Known Member

    Registriert seit:
    5. April 2009
    Beiträge:
    438
    Zustimmungen:
    0
    Hatte auch schon dran gedacht, dass beim Refresh nur eine "reine" html-Datei benutzt werden darf. Werd mich morgen drum kümmern und deine hilfreichen Vorschläge einbeziehen.

    *arno zustimm und auf der tastatur einschlaf :D*
     
  3. floffimedia

    floffimedia Well-Known Member

    Registriert seit:
    5. April 2009
    Beiträge:
    438
    Zustimmungen:
    0
    So. Einmal drüber schlafen und ein Tag Pause haben mich tatsächlich schon sehr viel weiter gebracht :D

    Die URLs beziehen sich jetzt auf die Serveradresse und auch sonst habe ich alle "störenden" php-Variablen entfernt, sodass man die die Datei jetzt auch schön im Browser betrachten kann.

    Jetzt muss ich nur noch das jQuery richtig zum Laufen bringen :mrgreen:
    Der Vollständigkeit halber poste ich das script noch mal:

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Naja, und dann halt noch der Link, der so aussieht:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Brauche ich da überhaupt ein "href"? Ich habe es einfach mal rausgelassen :D
    Woran liegt es, dass das jQuery nicht funktioniert?
    Ich hab's sogar vor dem wp_head eingebaut, weil irgendwo stand, dass das wichtig ist.
     
    #23 floffimedia, 25. Juni 2009
    Zuletzt bearbeitet: 25. Juni 2009
  4. floffimedia

    floffimedia Well-Known Member

    Registriert seit:
    5. April 2009
    Beiträge:
    438
    Zustimmungen:
    0
    Scheinbar klappt das mit dem Link nicht, obwohl ich nun ja auch eine id statt einer class verwende.
    Ich habe gerade getestet, ob es mit einem simplen "alert" funktioniert, aber das ging auch nicht.

    [Update] Wenn ich
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    verwende, klappt es. Nur wenn ich versuche, die spezielle id zu wählen, geht es nicht mehr. Wie kann das sein?
     
    #24 floffimedia, 25. Juni 2009
    Zuletzt bearbeitet: 25. Juni 2009
  5. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    geht nicht? Gibts die ID "refresh" mehrmals?
     
  6. floffimedia

    floffimedia Well-Known Member

    Registriert seit:
    5. April 2009
    Beiträge:
    438
    Zustimmungen:
    0
    Doch, geht. Hab' ich doch tatsächlich die ganze Zeit "a.refresh" benutzt. Aaaah!
    Gibt es ein Emoticon für :Kopf auf die Tischplatte hau? :mrgreen:

    Ach ja: Bis jetzt funktioniert es nur mit dem "alert", mit der "load"-Funktion (s.o.) noch nicht. Woran kann das liegen?
     
  7. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Mmh, funktioniert doch, oder nicht? Laut Firebug kommt das hier:
    HTML:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    als Response zurück und wird in das <div> eingebettet.

    Übergib mal beim Aufruf des Scripts noch einen zufälligen Parameter (z.B. aktuellen Timestamp) um Caching zu vermeiden.
     
  8. floffimedia

    floffimedia Well-Known Member

    Registriert seit:
    5. April 2009
    Beiträge:
    438
    Zustimmungen:
    0
    Den Timestamp habe ich an die URL der zu ladenden Datei im Script angehängt, aber das Script wird ja nicht neu geladen.

    Bei mir geht es im IE und im Firefox nicht (das ist glaube ich das erste Mal, wo bei mir im IE einmal etwas funktioniert! :))

    Wie kann ich das caching sonst noch verhindern? Ich möchte es nicht im <head> ganz abschalten, sonst lädt die Seite so langsam.
     
  9. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Also 1x gehts bei mir (im FF 3.5), es kommt allerdings derselbe Inhalt der bereits in der Seite vorhanden ist nochmal rein. Daher siehts so aus als würde nichts passieren. Ich hätte deshalb jetzt zuerst an Caching gedacht.

    Das es nicht nochmal geht ist auch klar - du ersetzt den gesamten Inhalt, also auch deinen Link an den das Click-Event gebunden ist. Du müsstest also das Click-Event nochmal an den (neuen) Link binden.
    Besser wärs aber, wenn nur der Text-Inhalt ersetzt würde und der Refresh-Link nicht beeinflusst wird.
     
  10. floffimedia

    floffimedia Well-Known Member

    Registriert seit:
    5. April 2009
    Beiträge:
    438
    Zustimmungen:
    0
    Das erste Mal funktioniert das Script tatsächlich, ich ändere immer den Text im einen Browser und klicke im anderen auf den Link.

    Aber wie kann ich mit der Variable arbeiten? Wenn ich sie im zu refreshenden Inhalt habe, funktioniert das Skript nicht mehr, wenn sie außerhalb ist, ändert sich die Variable nicht mehr.
     
  11. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Welche Variable? Ich rede nur von dem Refresh-Link, da hängt doch keine Variable dran? Falls du einen variablen Wert im Text hast (die Nummer?), dann lies den doch vor dem Request aus und schicke ihn im Request als Parameter mit.
     
  12. floffimedia

    floffimedia Well-Known Member

    Registriert seit:
    5. April 2009
    Beiträge:
    438
    Zustimmungen:
    0
    Der Link, durch den das Click-Event ausgelöst wird, wird ja einerseits von Anfang an in die Seite included, auf der anderen Seite befindet er sich nach dem Refresh wieder in der Datei, die nachgeladen wird, ich verstehe deshalb nicht, warum ich das Click-Event an einen zweiten Link binden muss, es gibt ja gar keinen zweiten Link.

    Allerdings ist an dieser These schon was dran, denn wenn ich den Link aus der div-Klasse rausziehe, funktioniert das Script so oft ich es anklicke.
     
  13. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Nein, der Link, an den du das Event gebunden hast, ist weg. In dem Moment wo der Content im Container ersetzt wird. Ab da ist ein neuer Link in dem Container, ohne gebundenes Click-Event. Er hat zwar dieselbe ID, das wars aber auch schon. Das Event wird aber an ein Element gebunden, nicht an eine ID. Und das Element ist eben nicht mehr dasselbe. Klar?
     
  14. floffimedia

    floffimedia Well-Known Member

    Registriert seit:
    5. April 2009
    Beiträge:
    438
    Zustimmungen:
    0
    Ah, Ok. Verstanden.
    Wenn ich das richtig sehe, gibt es somit auch keine Möglichkeit, das Event mit dem neuen Element zu verknüpfen, außer ihm eine neue ID zuzuweisen und diese auch ins Script einzubauen. In meinem Fall erweist sich das jedoch leider als nicht durchsetzbar.

    Also werde ich den Link außerhalb platzieren müssen.

    Trotzdem danke ich dir ganz herzlich für all die Hilfe, ist ja echt Wahnsinn, wie viel Mühe du dir gemacht hast :D

    Wenn ich deine Arbeitsstunden bezahlen müsste...
    Nein, daran denke ich besser nicht :mrgreen:
     
  15. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Du müsstest einfach nach dem Laden des Inhalts erneut das hier aufrufen:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Ich schreib dir ne Rechnung... :twisted:
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden