get_permalink() im action-Attribut eines Formulars und Textanker

  • Moin,

    zuerst der Code:

    HTML
    <form action="<?php get_permalink($post->ID)?>" id="anker" method="post"> 
    <input type="text"  name="text1" />
    <input type="submit" name="submit" value="absenden" />
    </form>

    Wenn sich der Browser bei einer Sprungmarke befindet (#anker), und dann das Formular abgesendet wird, dann steht hinterher in der Adresszeile immernoch der Anker. Soll er aber nicht. Die Funktion get_permalink mit echo ausgegeben liefert die korrekte URL ohne Sprungmarke. Wenn ich beim action-Attribut die URL direkt eintrage, dann funktionierts allerdings und nach absenden befindet sich kein Anker mehr in der Adresszeile. Also liegt es nun an get_permalink oder nicht? Und gibt es ggf eine andere Möglichkeit das Formular an sich selbst abzuschicken (nur um den Anker "bereinigt")? Wenn ich übrigens das action Attribut leer lasse, bleibt der Anker in der Adresszeile auch bestehen.

    lg

    • 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

  • Du mußt auch beim action= im Formular den Permalink mit echo ausgeben, sonst steht da gar nichts drin und deshalb wird beim Absenden die aktuelle URL inklusive #Anker genommen.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • Du kannst action auch einfach weg lassen, das hat den gleichen Effekt wie das leer lassen. Oder Du verwendest <?php echo $_SERVER['PHP_SELF']; ?>

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • $_SERVER['PHP_SELF'] gibt aber das aktuell ausgeführte PHP-Script zurück, was bei Wordpress (fast) immer index.php ist, auch bei konfigurierten Permalinks. Ziel für das Formular wäre dann nicht die Permalink-URL, sondern die index.php, was nicht funktionieren wird.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • $_SERVER['PHP_SELF'] gibt aber das aktuell ausgeführte PHP-Script zurück, was bei Wordpress (fast) immer index.php ist

    Guter Einwand. Da ich zu 95% Formulare per Ajax verarbeite habe ich darüber nicht nachgedacht. Danke für die Richtigstellung. Man müsste mal testen ob $_SERVER['REQUEST_URI'] den gewünschten Erfolg brächte.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

Jetzt mitmachen!

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