Anzeige:
Ergebnis 1 bis 12 von 12

Thema: HTML: Zurück-Funktion ohne JS möglich?

  1. #1
    Registrierter Benutzer
    Registriert seit
    15.07.2004
    Beiträge
    8

    HTML: Zurück-Funktion ohne JS möglich?

    Hi,

    ich habe eine relativ simple Frage, auch wenn ich befürchte die Antwort bereits zu kennen...

    Folgendes Problem stellt sich mir aktuell:

    Ich habe eine Seite, bei der ich in einer Datenbank etwas suchen kann. Standardmäßig wird die Datenbank einfach ausgelesen und angezeigt, falls gesucht wird wird stattdessen das Suchergebnis angezeigt. Die Suchbegriffe werden per PHP und über POST ( nicht GET, das würde das Problem beheben, aber ich kann die GET-Methode nicht nehmen; warum würde jetzt zu weit führen ) verarbeitet.

    Die Daten, auch die der Suchergebnisse, kann man per Klick auf ein Symbol bearbeiten. Und genau hier setzt meine Frage an.

    Im Bearbeitungsformular habe ich zwei Möglichkeiten:

    1. Ich vergebe einen festen Wert für den Zurück-Link ( z.B. zurück zur Gesamtübersicht ) und habe keine Möglichkeit zu den Suchergebnissen zurückzukehren, sondern nur zur Gesamtübersicht ( spontan fällt mir als Lösung nur ein, die $_POST-Variablen irgendwie zwischenzuspeichern und den Link quasi als Formular zweckzuentfremden und somit zurückzukommen) , aber das wäre vermutlich sehr aufwendig.

    2. Ich nutze Javascript und die Back-Funktion und komme direkt zurück zu den Ergebnissen.

    Gibt es sonst keine Möglichkeit?

    Ich habe eigentlich kein Problem mit JS, aber die komplette Seite kommt bislang komplett ohne JS aus und irgendwie widerstrebt es mir nur für eine einzige Funktion JS zur Funktionalität vorauszusetzen.

    -hanky-

  2. #2
    Registrierter Benutzer
    Registriert seit
    15.10.2005
    Ort
    Franken
    Beiträge
    362
    Die Funktion ist ja nicht lebenswichtig. Ein Zurück im Browser würde den gleichen Zweck erfüllen.

    Inzwischen kann man aber Javascript als gegeben vorraussetzen.
    Dank der Rekursion kann ich IF-Schleifen bauen.

    In neuem Glanz: www.turbohummel.de

  3. #3
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    Da die Page ja mit PHP gestaltet wird, kannst du doch nen festen Link auf das spezifische Suchergebnis setzen...

    MfG Bischi

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  4. #4
    Registrierter Benutzer
    Registriert seit
    22.08.2002
    Ort
    Nürnberg
    Beiträge
    638
    Geht es nicht per Session-Handling? Dann kannst Du die Suchanfrage doch einfach in der Session-Variablen speichern.

    Oder Du machst es ähnlich wie hier im vBulletin-Forum. Da werden die Such-Daten per Post an eine Zwischenseite gesendet. Diese generiert die Antwort und speichert sie in der Datenbank zwischen. Die Zwischenseite leitet dann mit dem Key der Datenbank zur endgültigen Auflistung der Ergebnisse.

    Pingu
    Homepage: www.pingu.info

  5. #5
    Registrierter Benutzer
    Registriert seit
    15.07.2004
    Beiträge
    8
    Hi,

    danke erstmal für die Antworten.

    @Turbohummel: Klar, die Funktion ist nicht lebenswichtig, deswegen habe ich die Lösung des Problems auch nicht ganz oben auf die "TODO-Liste" gesetzt

    Es hätte mich halt interessiert ob es eine Lösung ohne JS gibt. Apropos JS - du hast sicher recht, heutzutage hat zwar fast jeder Browser JS-Unterstützung mit an Bord, aber es erschien mir halt etwas überzogen mich nur wegen einer einzigen Funktion davon abhängig zu machen.

    @ bischi: Das funktioniert ( leider ) nicht, da die Daten aus dem Formular per POST übertragen werden. Wenn die Variablen per GET übertragen würden, wäre das denke ich kein Problem. Oder sitze ich da einem Irrtum auf?

    @ Pingu: Danke für den Hinweis, werde es mir einmal ansehen/ mich einlesen.

    generell: Ich möchte nochmal das POST/GET-Problem schildern:

    Ich habe, um mich ein wenig in PHP/MySQL einzuarbeiten, ein kleines ( einfaches ) Projekt begonnen. Es handelt sich um eine CD-Datenbank, d.h. man kann Interpret, Titel sowie diverse weitere Daten eintragen/abfragen.

    Hierzu wird links auf der Seite ein Menü dargestellt, in das ich die Daten eintrage und anschließend über einen Button entweder nach den Einträgen suchen lasse oder diese hinzufüge. Erschien mir als die komfortabelste Lösung und gefällt mir auch sehr gut so. Ich habe einen Screenshot erstellt, auf dem man die aktuelle Fassung sehen kann.

    Diese Daten im Menü werden über POST verarbeitet, da ich nicht möchte dass man alles oben in der Adressleiste einsehen kann wenn man etwas hinzufügt. Deshalb ist es auch nicht ohne Weiteres möglich, über dieses Formular einmal Daten per GET ( wenn gesucht wird ) oder per POST ( wenn hinzugefügt wird ) zu übertragen ( auch hier bitte korrigieren, falls ich mich irre ).

    Wie gesagt, ich arbeite mich erst in PHP/MySQL ein, kann also durchaus sein dass ich mich in diverser Hinsicht irre

    -hanky-

  6. #6
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    Zitat Zitat von -hanky-
    @ bischi: Das funktioniert ( leider ) nicht, da die Daten aus dem Formular per POST übertragen werden. Wenn die Variablen per GET übertragen würden, wäre das denke ich kein Problem. Oder sitze ich da einem Irrtum auf?
    Ich hab zwar nicht wirklich ne Ahnung von PHP (das komplexeste war glaub ich ein 4-Zeiliger Counter ) - aber: Soweit ich das sehe, werden sämtliche Seiten, die der Benutzer zu sehen kriegt, von deinem PHP-Server jedes mal neu erzeugt. Wenn du die Resultatseite erzeugst, kannst du doch den Link fest einbauen - ich meine: Die Suchparameter übergibst du ja irgendwie! Vielleicht ist das jetzt totaler Nonsense, aber versuchen kann mans ja mal

    MfG Bischi

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  7. #7
    Registrierter Benutzer
    Registriert seit
    22.08.2002
    Ort
    Nürnberg
    Beiträge
    638
    Zitat Zitat von bischi
    Ich hab zwar nicht wirklich ne Ahnung von PHP (das komplexeste war glaub ich ein 4-Zeiliger Counter ) - aber: Soweit ich das sehe, werden sämtliche Seiten, die der Benutzer zu sehen kriegt, von deinem PHP-Server jedes mal neu erzeugt. Wenn du die Resultatseite erzeugst, kannst du doch den Link fest einbauen - ich meine: Die Suchparameter übergibst du ja irgendwie! Vielleicht ist das jetzt totaler Nonsense, aber versuchen kann mans ja mal

    MfG Bischi
    Weil man damit genau nur einmal zurück kann. Denn woher soll der Server die Historie wissen. Die Historie kennt nur der Browser. Oder der Sever muß sich wirklich den ganzen Weg des Benutzers merken.

    Pingu
    Homepage: www.pingu.info

  8. #8
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    Zitat Zitat von Pingu
    Weil man damit genau nur einmal zurück kann.
    Aber das ist doch das Ziel - oder nicht?

    MfG Bischi

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  9. #9
    Registrierter Benutzer
    Registriert seit
    22.08.2002
    Ort
    Nürnberg
    Beiträge
    638
    Ich habe es so verstanden, daß man auch von der vorhergehenden Seite zur vor-vorhergehenden Seite gehen können soll (Konjunktiv?).

    Pingu
    Homepage: www.pingu.info

  10. #10
    Registrierter Benutzer
    Registriert seit
    15.07.2004
    Beiträge
    8
    Zitat Zitat von bischi
    Ich hab zwar nicht wirklich ne Ahnung von PHP (das komplexeste war glaub ich ein 4-Zeiliger Counter ) - aber: Soweit ich das sehe, werden sämtliche Seiten, die der Benutzer zu sehen kriegt, von deinem PHP-Server jedes mal neu erzeugt. Wenn du die Resultatseite erzeugst, kannst du doch den Link fest einbauen - ich meine: Die Suchparameter übergibst du ja irgendwie! Vielleicht ist das jetzt totaler Nonsense, aber versuchen kann mans ja mal

    MfG Bischi
    Hi,

    die Resultatseite ist nicht das Problem, von da aus habe ich sowieso nur einen festen Link zurück zur Gesamtübersicht.

    Das Problem fängt mit den Details an ( die man bekommt, sobald man auf einen Eintrag klickt ), beim Bearbeiten bzw. beim Löschen.

    Wenn ich eine Suche ausgeführt habe und einen Treffer dieses Suchergebnisses anzeigen lasse/bearbeiten möchte kann ich in dem nun folgenden Fenster nicht mehr zu den Suchergebnissen zurück, sondern nur zur Gesamtübersicht. Das ist kein gravierendes Problem, aber es stört mich etwas.

    Mir fiel spontan nur die Möglichkeit ein, den "Zurück"-Link als Formularbutton zu entwerfen und die $_POST-Variablen über diesen Button erneut senden zu lassen ( quasi wie eine Simulation einer Sucheingabe ). Wobei auch das vermutlich Probleme aufwirft/umständlich ist.

    Aber Pingu hat vermutlich recht - um das, was ich möchte, zu realisieren, muss sich der Server in der Tat den Weg des Nutzers merken ( wenn auch in begrenztem Umfang, es sind ja nicht sooo viele Wege möglich ) und ich einigen Aufwand betreiben - oder ich nutze Javascript. Oder ich akzeptiere die aktuelle Situation. Oder es geht wie bereits von Pingu erwähnt über das Session-Management ( habe mich noch nicht eingelesen ).

    Ich werde mal sehen, wie ich mich entscheide, und teile dann ( falls ich die Situation nicht so belasse ) die Lösung mit

    -hanky-

  11. #11
    Registrierter Benutzer
    Registriert seit
    25.12.2004
    Beiträge
    217
    Hi

    @-hanky-
    Du kannst doch auch den Referer auslesen und diesen als Zurück-Link anbieten.
    Dazu müsstest du in der Suche auf GET umstellen da die POST-Daten logischerweise nicht in der URL stehen.

    Deshalb ist es auch nicht ohne Weiteres möglich, über dieses Formular einmal Daten per GET ( wenn gesucht wird ) oder per POST ( wenn hinzugefügt wird ) zu übertragen ( auch hier bitte korrigieren, falls ich mich irre ).
    Also du kannt schon beides gleichzeitig "übertragen". Einfach im Form-Tag als "action" Attribut die Zielurl inklusive Get-Parameter eingeben.

    Grüße,
    nEox

  12. #12
    Registrierter Benutzer
    Registriert seit
    15.07.2004
    Beiträge
    8
    Hi,

    habe das Problem jetzt für mich ( fürs Erste ) zufriedenstellend gelöst.

    Ich nutze für die Zurück-Links jetzt JavaScript, allerdings generiere ich den Zurück-Button dahingehend, ob der Client JS aktiviert hat oder nicht, so dass man die Seite auch mit Browsern ohne aktiviertem JS nutzen kann ( dann eben nur mit "zurück zur Gesamtübersicht".

    Falls jemand Interesse an der Lösung hat:

    Code:
    function backbutton($i) { ?>
    	<script language="JavaScript" type="text/javascript">
    	document.write('<p><div align="center"><a href="javascript:history.go(<?=$i?>)">zurück<\/a><\/div><\/p>');
    	</script>
    	<noscript>
    	<html>
    	<p><div align="center">
    	<a href="index.php?page=<?=$_GET['page']?>">zurück zur Gesamtübersicht</a></div></p>
    	</html>
    	</noscript>
    	<?php
    	}
    wobei $i angibt, wie weit zurück gegangen werden soll. An der Stelle, an der der Link erscheinen soll, binde ich einfach die Funktion ein:

    Code:
    <?php backbutton(-1); ?>
    Was mich allerdings noch etwas stört ( ich hasse es, "Perfektionist" zu sein.. ) ist die Tatsache, dass beim Zurückgehen die Version aus dem Cache genommen wird, d.h. falls ich einen Eintrag abgeändert habe wird er trotzdem noch "falsch" in der Übersicht angezeigt bis ich die Seite neu lade. Da muss ich mir noch etwas überlegen

    @ nEox: Die Referer-Variante war auch eine Idee, die ich mir überlegt hatte, allerdings muss ich dann - wie du ja schreibst - die GET-Methode nehmen.

    -hanky-

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •