[gelöst] Views mit exposedFilter - Anker an URL anhängen
am 20.03.2012 - 12:57 Uhr in
Hey Leute, ich hoffe mal, hier weiß mal wieder jemand Rat.
Und zwar habe ich mittels Views und exposed Filters (hervorgehobene Filter) eine Suche erstellt. Da kann man seine Filter einstellen, auf den Button "Suchen" klicken und dann wird eben gesucht. Die Seite wird neu geladen und die Filter als Parameter an die URL gehängt, also z. B. example.com/meine_suche?feld1=a&feld2=b&feld3=12345
Das Problem ist nun, dass das Formular für die Filter ziemlich lang ist. Ich hätte gern, dass der Browser nach dem Klick auf den Button "Suchen" die Seite neu lädt und direkt runter zu den Suchergebnissen springt.
Meine Idee war, über ein Template einen Div mit ID (z. B. "search-result") um die Suchergebnisse zu legen und die URL dann entsprechend mit Anker aufzurufen, sodass die URL dann so aussieht: example.com/meine_suche?feld1=a&feld2=b&feld3=12345#search-result
Nur leider habe ich keine Ahnung, ob das so funktionieren würde (ob er also beim Seiten-Reload den Anker berücksichtigen würde) und vor allem, wie ich das bewerkstelligen kann. Irgendwie muss das doch gehen, oder? Hat diesbezüglich jemand eine Idee? Oder einen anderen Lösungsvorschlag für mein Problem? Ich bin für fast alles offen, nur den Vorschlag "Ajax für die View aktivieren" fällt von vorn herein aus, das kann und will ich nicht aktivieren, das macht an verschiedenen anderen Stellen in der View Probleme.
Ich habe bisher nur das hier für das Thema gefunden: http://drupal.org/node/1033262
Aber das erscheint mir etwas... unausgegoren. Wenn's keine andere Option gibt, kann ich es auch so mal probieren, aber ich hoffe erstmal darauf, dass jemand eine gute Lösung kennt ;-)
Es wäre natürlich auch möglich, ein jQuery-Script einzubinden und beim .ready mittels scrollTo() zu der ID zu springen, aber das behagt mir auch nicht so richtig, das wäre quasi der allerletzte Ausweg.
Also entweder, ich stehe gerade total auf'm Schlauch oder es ist doch nicht so ganz ohne.
Also - hat jemand eine Idee?
- Anmelden oder Registrieren um Kommentare zu schreiben
Du kannst mit dem
am 20.03.2012 - 13:42 Uhr
Du kannst mit dem HOOK:
_form_alter(&$form, &$form_state, $form_id)
an die URL ganz am Ende einen Anker anhängen, indem du schreibst:
<?php
$form['#action'].="#hierda";
?>
Das müsste doch für deine Bedürfnisse ausreichend sein, nicht wahr.
lieben Gruß
Berthold Lausch
Drupal Video-Tutorials
O_o Man bin ich dämlich -,-'
am 20.03.2012 - 14:23 Uhr
O_o Man bin ich dämlich -,-' Die Möglichkeit hatte ich auch in Erwägung gezogen, aber dann irgendwie gedacht, wenn ich dann "
example.com/meine_suche#search-result?feld1=a
" usw. habe, bringt mir das auch nichts (ich hatte in die Action geschaut und da stand dann immer der Pfad ohne Parameter drin). Ich hätte es halt einfach mal testen sollen... Aber danke für den Hinweis, damit klappt es natürlich :-)So, hast du jetzt noch einen schlauen Tipp, wie ich dem Pager genau das gleiche beibringe?
Da du ja gar nicht dämlich
am 20.03.2012 - 16:34 Uhr
Da du ja gar nicht dämlich bist :-)
kannst du das im Hook theme_pager_link einstellen.
lieben Gruß
Berthold Lausch
Drupal Video-Tutorials
Raffiniert :-) Tja, so rächt
am 20.03.2012 - 18:38 Uhr
Raffiniert :-) Tja, so rächt es sich, dass ich die Theming-Funktionen bisher recht Stiefmütterlich behandelt habe ^^
Super, vielen Dank für die schnelle Hilfe :-)