AJAX in Posts: mehrere Parameter mit get unmöglich wegen '&'

  • Bin dabei eine ganze Page in WordPress reinzuknallen, wobei ich jedoch öfters auch an meine Grenzen stoße wie hier: Habe das "Inline Javascript Plugin" benutzt um JavaScript innerhalb von Posts/Pages benutzen zu können. Über AJAX wird darin eine php-Datei geöffnet:

    Code
    mail.open("GET","scripts/getRegister.php?mail="+mailn+"&mode=2",true);

    Der Request wird auch ausgeführt, aber Firebug hat mir gezeigt, dass das '&' das die Get-Variablen verbindet zu '&#038' wird und dadurch kann die 2. Variable nicht mehr gelesen werden.
    Habe auch mal das '&' mit String.fromCharCode(25) (oder wars 26?) ersetzt, aber da hat WordPress auch was hinzugefügt so, dass die 2. Variable unbrauchbar war.

    Ich poste das übrigens hier, weil es außerhalb von WordPress (2.51 btw.) super funktioniert.

    Ich will keinen Workaround mit der POST-Methode, da ich den AJAX-kram und die Übergabe von mehreren Variablen oft auf der Page brauchen werde und nicht nur in diesem speziellen Fall.

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Meiner Ansicht nach hat Code jeder Art nix in Beiträgen zu suchen. ;-)

    Das Problem ist hier der WP-Editor, der die '&' HTML-konform in & bzw. & umwandelt. Das Verhalten ist für HTML korrekt, für JS natürlich nicht. Ich würde dir empfehlen, den Code nicht direkt in den WP-Editor zu schreiben, sondern per Page Template oder Plugin einzubauen. Z.B. könntest du in deinen Beitrag schreiben:

    HTML
    <!--mailopen-->


    und dieses "Tag" per Plugin mit dem gewünschten Code ersetzen. Damit umgehst du die Editor-Filter und der Code kommt unverändert an.

  • Die Lösung via Template-File hört sich ganz gut an, aber bisher habe ich mit diesen nicht viel gemacht. Weiß nicht ob es so der burner wäre alles in ein Plugin zu quetschen, weil es bei der Fülle der verwendeten Php und JS Scripts dann evtl. unübersichtlich werden könnte.
    Muss ich dann für jede Page solch eine php-file anlegen wie unten?
    Habe zwar da mal nach gelesen:Pages « WordPress Codex
    aber sehe nicht ganz durch, wie ich das mit meiner page auf die Reihe kriege.

  • Du kannst für jede Seite ein Template anlegen, oder eins für alle, oder die page.php verwenden. Je nachdem, wie dein Code aussieht, und welche Änderungen von Seite zu Seite gemacht werden müssen.

    Dein Template ist so in Ordnung, bei Schreiben einer Seite kannst du jetzt rechts (WP <2.5) bzw. unten (WP 2.5+) das Seitentemplate mit dem Namen (hier: "Blabla") auswählen und so der Seite zuordnen.

    Guck dir in dem Zusammenhang vielleicht auch mal Conditional Tags an, v.a. is_page(). So kannst du in einem mehrfach verwendeten Template oder auch der page.php mehrere Seiten unterscheiden.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!