Suchbegriff zur nächsten Seite mitnehmen – SELFHTML-Forum Forum als Ergänzung zum SELFHTML-Wiki und zur Dokumentation SELFHTML https://forum.selfhtml.org/self Suchbegriff zur nächsten Seite mitnehmen Wed, 28 Dec 22 16:45:12 Z https://forum.selfhtml.org/self/2022/dec/28/suchbegriff-zur-nachsten-seite-mitnehmen/1805082#m1805082 https://forum.selfhtml.org/self/2022/dec/28/suchbegriff-zur-nachsten-seite-mitnehmen/1805082#m1805082 <p>Hallo zusammen,</p> <p>ich möchte gerne einen Suchbegriff bei einer paginierten Tabelle zur nächsten Seite mitnehmen. Momentan mache ich das, indem ich den Suchbegriff als Session-Variable speichere, doch die bleibt natürlich auch nach dem Refresh der Seite, was ich jedoch nicht haben möchte.</p> <p>Eine Möglichkeit, die mir in den Sinn kam, ist, statt Links zur Paginierung zu verwenden, diese zu Submit-Buttons zu machen. Dann könnte ich den Inhalt des Suchfelds mitnehmen. So richtig gut finde ich das aber nicht.</p> <p>Eine zweite Möglichkeit wäre, die Suche als Query-String zu speichern. Sieht dann natürlich nicht so schön aus in der URL-Zeile.</p> <p>Gibt es da so etwas wie eine Best-Practice-Methode?</p> <p>Grüße<br> Boris</p> Suchbegriff zur nächsten Seite mitnehmen Wed, 28 Dec 22 17:04:52 Z https://forum.selfhtml.org/self/2022/dec/28/suchbegriff-zur-nachsten-seite-mitnehmen/1805083#m1805083 https://forum.selfhtml.org/self/2022/dec/28/suchbegriff-zur-nachsten-seite-mitnehmen/1805083#m1805083 <blockquote> <p>ich möchte gerne einen Suchbegriff bei einer paginierten Tabelle zur nächsten Seite mitnehmen.</p> </blockquote> <p>Das ist eine durchaus gängige Anforderung.</p> <blockquote> <p>Momentan mache ich das, indem ich den Suchbegriff als Session-Variable speichere, doch die bleibt natürlich auch nach dem Refresh der Seite, was ich jedoch nicht haben möchte.</p> </blockquote> <p>Das ist aus meistens vielen Gründen keine besonders gute Idee, auch wenn Mr. Fantastic hier im Forum, nennen wir ihn einfach mal <strong><a href="/users/4179" class="mention registered-user" rel="noopener noreferrer">@TS</a></strong> das garantiert anders sieht.</p> <blockquote> <p>Eine Möglichkeit, die mir in den Sinn kam, ist, statt Links zur Paginierung zu verwenden, diese zu Submit-Buttons zu machen. Dann könnte ich den Inhalt des Suchfelds mitnehmen. So richtig gut finde ich das aber nicht.</p> </blockquote> <p>Ich vermute mal, Du willst einen POST-Requests statt eines GET provozieren. Kann man machen. Hängt zunächst aber nicht davon ab, ob Du einen Button verwendest. Darüber hinaus hat das viele Nachteile.</p> <blockquote> <p>Eine zweite Möglichkeit wäre, die Suche als Query-String zu speichern.</p> </blockquote> <p>M.E. die beste, soweit ich Deinen Use-Case verstanden habe. Speichern würde ich das dann aber nicht nennen. Du kreist eine URL, die zu nachvollziehbaren Ergebnissen führt. Das möchte man im Regelfall aus vielen Gründen gerne haben.</p> <blockquote> <p>Sieht dann natürlich nicht so schön aus in der URL-Zeile.</p> </blockquote> <p>Den ganzen Query-Kram kannst Du dabei mittels Rewrites usw. noch aufhübschen, aber das Prinzip bleibt.</p> <p>Wenn Dein Problem wirklich nur sein sollte "huch, das ist aber eine hässliche Browserzeile": lass es bleiben.</p> <blockquote> <p>Gibt es da so etwas wie eine Best-Practice-Methode?</p> </blockquote> <p>ME ja: Query-Paramter für eine Suchabfrage gehören nach Möglichkeit in einen GET-Request.</p> Suchbegriff zur nächsten Seite mitnehmen Thu, 29 Dec 22 12:43:19 Z https://forum.selfhtml.org/self/2022/dec/28/suchbegriff-zur-nachsten-seite-mitnehmen/1805106#m1805106 https://forum.selfhtml.org/self/2022/dec/28/suchbegriff-zur-nachsten-seite-mitnehmen/1805106#m1805106 <p>Also logisch betrachtet gibt es da 3 Lösungen:</p> <ol> <li> <p>Du schleifst den Parameter in der URL mit und müsstest demnach alle Links anfassen.</p> </li> <li> <p>Du findest dich damit ab, dass die Suche via Session gespeichert wird (kann auch ganz smart sein).</p> </li> </ol> <p>2-3. Du löscht die Parameter aus der Session, wenn der User auf eine "nicht Suchseite" kommt.</p> <p>Eventuell kannst du es auch über Cookies lösen. Dann könntest du eine Zeit einstellen, wann der Cookie gelöscht wird. Somit könntest du verhindern, dass die Suche am nächsten Tag noch aktiv ist. Ist der User auf einer Suchseite wird der Cookie aktualisiert. Da kommen aber neue Probleme ... deshalb war nur eine nicht zu Ende Gedachte Idee, die neue Impulse bringen soll.</p> <p>Gruß<br> Impulsgeber T-Rex</p> Suchbegriff zur nächsten Seite mitnehmen Wed, 28 Dec 22 17:28:55 Z https://forum.selfhtml.org/self/2022/dec/28/suchbegriff-zur-nachsten-seite-mitnehmen/1805086#m1805086 https://forum.selfhtml.org/self/2022/dec/28/suchbegriff-zur-nachsten-seite-mitnehmen/1805086#m1805086 <p>Hallo Mitleser,</p> <blockquote> <p>Du willst einen POST-Requests statt eines GET provozieren. Kann man machen…</p> </blockquote> <p>Eher nicht.</p> <p>Es gibt Usecases für POST und Usecases für GET, und eigentlich sind die nicht austauschbar.</p> <p>Ein GET, wo ein POST hingehört (sprich: der fachliche Ressourcen am Server updated), kollidiert mit Caches. Ein POST, wo ein GET hingehört, führt je nach Browser zu blöden Rückfragen bei der History-Navigation ("wollen Sie diese Daten tatsächlich nochmal senden?!").</p> <p>Eine Suchanfrage und auch das Anzeigen von Seite X im Suchergebnis ist aus meiner Sicht definitiv ein GET. Den Suchbetriff in den Queryparameter zu setzen ist absolut okay, man schaue mal, welche Bandwürmer da die Suchmaschinen produzieren.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - obstruxi </div> Suchbegriff zur nächsten Seite mitnehmen Wed, 28 Dec 22 19:16:04 Z https://forum.selfhtml.org/self/2022/dec/28/suchbegriff-zur-nachsten-seite-mitnehmen/1805089#m1805089 https://forum.selfhtml.org/self/2022/dec/28/suchbegriff-zur-nachsten-seite-mitnehmen/1805089#m1805089 <blockquote> <p>Das ist aus meistens vielen Gründen keine besonders gute Idee, auch wenn Mr. Fantastic hier im Forum, nennen wir ihn einfach mal <strong><a href="/users/4179" class="mention registered-user" rel="noopener noreferrer">@TS</a></strong> das garantiert anders sieht.</p> </blockquote> <p>Gilt das nur für Suchbegriffe oder Ähnliches? Ich speichere nämlich die Sortierungseinstellungen durchaus in der Session, als z.B. <em>title DESC</em> oder so.</p> <blockquote> <p>Ich vermute mal, Du willst einen POST-Requests statt eines GET provozieren. Kann man machen. Hängt zunächst aber nicht davon ab, ob Du einen Button verwendest. Darüber hinaus hat das viele Nachteile.</p> </blockquote> <p>Ja, genau. Welche Nachteile denn?</p> <blockquote> <p>M.E. die beste, soweit ich Deinen Use-Case verstanden habe. Speichern würde ich das dann aber nicht nennen. Du kreist eine URL, die zu nachvollziehbaren Ergebnissen führt. Das möchte man im Regelfall aus vielen Gründen gerne haben.</p> </blockquote> <p>So habe ich es nun auch gelöst. Du sagt, man möchte das so haben. Aber warum?</p> <blockquote> <p>Den ganzen Query-Kram kannst Du dabei mittels Rewrites usw. noch aufhübschen, aber das Prinzip bleibt.</p> </blockquote> <p>Ja, stimmt. Wobei ich hier keine Notwendigkeit sehe.</p> <blockquote> <p>Wenn Dein Problem wirklich nur sein sollte "huch, das ist aber eine hässliche Browserzeile": lass es bleiben.</p> </blockquote> <p>Okay. </p> <blockquote> <p>ME ja: Query-Paramter für eine Suchabfrage gehören nach Möglichkeit in einen GET-Request.</p> </blockquote> <p>Gut, danke, das wollte ich wissen!</p> <p>Das führt mich aber zu einer andern Frage: Wie soll ich Suchbegriffe in der URL handhaben? Im Moment könnte da stehen <em>?search=Demon’s Souls</em>. Da ist sowohl ein Leerzeichen als auch ein Apostroph drin. Sollte ich das codieren, z.B. %20 für die Leerzeichen? Da muss es doch eine eingebaute Funktion in PHP geben.</p> <p>Grüße<br> Boris</p> Suchbegriff zur nächsten Seite mitnehmen Wed, 28 Dec 22 17:41:34 Z https://forum.selfhtml.org/self/2022/dec/28/suchbegriff-zur-nachsten-seite-mitnehmen/1805088#m1805088 https://forum.selfhtml.org/self/2022/dec/28/suchbegriff-zur-nachsten-seite-mitnehmen/1805088#m1805088 <blockquote> <blockquote> <p>Du willst einen POST-Requests statt eines GET provozieren. Kann man machen…</p> </blockquote> <p>Eher nicht. […]</p> </blockquote> <p>100% D'accord mit Deinen Argumenten. Meine Intention war schlicht, das Thema möglichst populärwissenschaftlich zu beleuchten.</p> Suchbegriff zur nächsten Seite mitnehmen Wed, 28 Dec 22 19:46:17 Z https://forum.selfhtml.org/self/2022/dec/28/suchbegriff-zur-nachsten-seite-mitnehmen/1805090#m1805090 https://forum.selfhtml.org/self/2022/dec/28/suchbegriff-zur-nachsten-seite-mitnehmen/1805090#m1805090 <p>Guten Abend,</p> <blockquote> <blockquote> <p>Das ist aus meistens vielen Gründen keine besonders gute Idee, auch wenn Mr. Fantastic hier im Forum, nennen wir ihn einfach mal <strong><a href="/users/4179" class="mention registered-user" rel="noopener noreferrer">@TS</a></strong> das garantiert anders sieht.</p> </blockquote> <p>Gilt das nur für Suchbegriffe oder Ähnliches? Ich speichere nämlich die Sortierungseinstellungen durchaus in der Session, als z.B. <em>title DESC</em> oder so.</p> </blockquote> <p>das kann man machen; eigentlich sollten aber alle Informationen, die das Ergebnis der Abfrage inhaltlich beeinflussen, auch als URL-Parameter übergeben werden. Die Präsentation dieser Inhalte (also beispielsweise die Sortierung) kann gern auch auf anderem Weg gesteuert werden.</p> <blockquote> <blockquote> <p>Ich vermute mal, Du willst einen POST-Requests statt eines GET provozieren. Kann man machen. Hängt zunächst aber nicht davon ab, ob Du einen Button verwendest. Darüber hinaus hat das viele Nachteile.</p> </blockquote> <p>Ja, genau. Welche Nachteile denn?</p> </blockquote> <p>Zum Beispiel, dass die Browser dann jedesmal mit einer für manche Nutzer unverständlichen Rückfrage reagieren, wenn man die Anzeige aktualisieren möchte.</p> <blockquote> <blockquote> <p>M.E. die beste, soweit ich Deinen Use-Case verstanden habe. Speichern würde ich das dann aber nicht nennen. Du kreist eine URL, die zu nachvollziehbaren Ergebnissen führt. Das möchte man im Regelfall aus vielen Gründen gerne haben.</p> </blockquote> <p>So habe ich es nun auch gelöst. Du sagt, man möchte das so haben. Aber warum?</p> </blockquote> <p>Weil man die Abfrage dann auch anderen als Link mitteilen kann, oder weil man sie als Bookmark speichern und wieder und wieder abrufen kann - um zu sehen, was sich seit gestern verändert hat.</p> <blockquote> <p>Das führt mich aber zu einer andern Frage: Wie soll ich Suchbegriffe in der URL handhaben? Im Moment könnte da stehen <em>?search=Demon’s Souls</em>. Da ist sowohl ein Leerzeichen als auch ein Apostroph drin. Sollte ich das codieren, z.B. %20 für die Leerzeichen? Da muss es doch eine eingebaute Funktion in PHP geben.</p> </blockquote> <p>Das muss natürlich URL-codiert werden (auch als Percent-Encoding bezeichnet). Stichwort: Kontextspezifische Codierung bzw. Maskierung.</p> <p>Einen schönen Tag noch<br>  Martin</p> <div class="signature">-- <br> "Malen nach Zahlen" sagten wir im Matheunterricht, wenn es bei der Kurvendiskussion hieß: Zeichnen Sie den Graphen der Funktion ... </div> Suchbegriff zur nächsten Seite mitnehmen Wed, 28 Dec 22 20:11:15 Z https://forum.selfhtml.org/self/2022/dec/28/suchbegriff-zur-nachsten-seite-mitnehmen/1805091#m1805091 https://forum.selfhtml.org/self/2022/dec/28/suchbegriff-zur-nachsten-seite-mitnehmen/1805091#m1805091 <p>Hallo Martin,</p> <blockquote> <p>das kann man machen; eigentlich sollten aber alle Informationen, die das Ergebnis der Abfrage inhaltlich beeinflussen, auch als URL-Parameter übergeben werden. Die Präsentation dieser Inhalte (also beispielsweise die Sortierung) kann gern auch auf anderem Weg gesteuert werden.</p> </blockquote> <blockquote> <p>Zum Beispiel, dass die Browser dann jedesmal mit einer für manche Nutzer unverständlichen Rückfrage reagieren, wenn man die Anzeige aktualisieren möchte.</p> </blockquote> <p>Ich verstehe. Es erfolgt bei mir jedoch nach jedem POST-Request eine Umleitung zum index, sodass bei einem Refresh keine erneute POST-Anfrage initiiert wird.</p> <blockquote> <p>Weil man die Abfrage dann auch anderen als Link mitteilen kann, oder weil man sie als Bookmark speichern und wieder und wieder abrufen kann - um zu sehen, was sich seit gestern verändert hat.</p> </blockquote> <p>Das ist ein starkes Argument. Das kam mir gar nicht in den Sinn. Vielen Dank für die Aufklärung!</p> <blockquote> <p>Das muss natürlich URL-codiert werden (auch als Percent-Encoding bezeichnet). Stichwort: Kontextspezifische Codierung bzw. Maskierung.</p> </blockquote> <p>Also <code>urlencode()</code>? Diese Funktion wandelt die Leerzeichen zu Plus-Zeichen um. Das Apostroph lässt sie jedoch stehen.</p> <p>Grüße<br> Boris</p> Suchbegriff zur nächsten Seite mitnehmen Wed, 28 Dec 22 20:35:28 Z https://forum.selfhtml.org/self/2022/dec/28/suchbegriff-zur-nachsten-seite-mitnehmen/1805092#m1805092 https://forum.selfhtml.org/self/2022/dec/28/suchbegriff-zur-nachsten-seite-mitnehmen/1805092#m1805092 <p>n'Abend Boris,</p> <blockquote> <blockquote> <p>Das muss natürlich URL-codiert werden (auch als Percent-Encoding bezeichnet). Stichwort: Kontextspezifische Codierung bzw. Maskierung.</p> </blockquote> <p>Also <code>urlencode()</code>? Diese Funktion wandelt die Leerzeichen zu Plus-Zeichen um. Das Apostroph lässt sie jedoch stehen.</p> </blockquote> <p>darf sie auch gern, denn das<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup> Apostroph ist ja in URL-Parametern nicht verboten und hat keine spezielle Bedeutung. Dafür sollte diese Funktion beispielsweise <strong>@</strong> durch %40 oder <strong>#</strong> durch %23 ersetzen. Oder <strong>%</strong> durch %25.</p> <p>Einen schönen Tag noch<br>  Martin</p> <div class="signature">-- <br> "Malen nach Zahlen" sagten wir im Matheunterricht, wenn es bei der Kurvendiskussion hieß: Zeichnen Sie den Graphen der Funktion ... </div> <hr class="footnotes-sep"> <section class="footnotes"> <ol class="footnotes-list"> <li id="fn1" class="footnote-item"><p>Manche sagen auch <strong>der</strong> Apostroph; ich habe in der Schule aber <strong>das</strong> gelernt. <a href="#fnref1" class="footnote-backref">↩︎</a></p> </li> </ol> </section> Suchbegriff zur nächsten Seite mitnehmen Wed, 28 Dec 22 22:10:09 Z https://forum.selfhtml.org/self/2022/dec/28/suchbegriff-zur-nachsten-seite-mitnehmen/1805093#m1805093 https://forum.selfhtml.org/self/2022/dec/28/suchbegriff-zur-nachsten-seite-mitnehmen/1805093#m1805093 <p>Hi,</p> <blockquote> <p>darf sie auch gern, denn das Apostroph</p> </blockquote> <blockquote> <p>Manche sagen auch <strong>der</strong> Apostroph; ich habe in der Schule aber <strong>das</strong> gelernt.</p> </blockquote> <p>Muß das heutzutage nicht <strong>die Apostroph:in</strong> heißen?</p> <p>cu,<br> Andreas a/k/a MudGuard</p> Suchbegriff zur nächsten Seite mitnehmen Thu, 29 Dec 22 21:19:32 Z https://forum.selfhtml.org/self/2022/dec/28/suchbegriff-zur-nachsten-seite-mitnehmen/1805120#m1805120 https://forum.selfhtml.org/self/2022/dec/28/suchbegriff-zur-nachsten-seite-mitnehmen/1805120#m1805120 <p>Hallo Martin,</p> <blockquote> <p>Manche sagen auch <strong>der</strong> Apostroph; ich habe in der Schule aber <strong>das</strong> gelernt.</p> </blockquote> <p>ich auch. Scheint aber tatsächlich falsch zu sein: <a href="https://www.korrekturen.de/genus/der-oder-das-apostroph.shtml" rel="nofollow noopener noreferrer">https://www.korrekturen.de/genus/der-oder-das-apostroph.shtml</a></p> <p>Kurios.</p> Suchbegriff zur nächsten Seite mitnehmen Thu, 29 Dec 22 21:25:56 Z https://forum.selfhtml.org/self/2022/dec/28/suchbegriff-zur-nachsten-seite-mitnehmen/1805121#m1805121 https://forum.selfhtml.org/self/2022/dec/28/suchbegriff-zur-nachsten-seite-mitnehmen/1805121#m1805121 <p>Hallo T-Rex,</p> <blockquote> <ol start="2"> <li>Du findest dich damit ab, dass die Suche via Session gespeichert wird (kann auch ganz smart sein).</li> </ol> </blockquote> <p>hatte ich eine Weile so gehabt, aber es hat sich nicht richtig angefühlt. Für mich trotzdem die zweitbeste Lösung.</p> <blockquote> <p>2-3. Du löscht die Parameter aus der Session, wenn der User auf eine "nicht Suchseite" kommt.</p> </blockquote> <p>Ja, könnte man machen. Klingt aber unnötig umständlich.</p> <blockquote> <p>Eventuell kannst du es auch über Cookies lösen. Dann könntest du eine Zeit einstellen, wann der Cookie gelöscht wird. Somit könntest du verhindern, dass die Suche am nächsten Tag noch aktiv ist. Ist der User auf einer Suchseite wird der Cookie aktualisiert. Da kommen aber neue Probleme ... deshalb war nur eine nicht zu Ende Gedachte Idee, die neue Impulse bringen soll.</p> </blockquote> <p>Hm... sicher, das ist ’ne Überlegung, aber ich finde Martins Argument mit der send- und speicherbaren Suche wirklich ausschlaggebend, deshalb habe ich mich tatsächlich für</p> <blockquote> <ol> <li>Du schleifst den Parameter in der URL mit und müsstest demnach alle Links anfassen.</li> </ol> </blockquote> <p>entschieden. </p> <p>Trotzdem danke für die Impulse! </p> <p>Grüße<br> Boris</p>