Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

Archive

Our old forums are still available as a read-only archive.

Moderators: martimiz, Sean, biapar, Willr, Ingo, simon_w

issue with big searchform


Reply

5 Posts   1661 Views

Avatar
blaater

19 October 2007 at 7:52am Community Member, 22 Posts

Hello everybody,

At the moment I'm having trouble with a big searchform on my website.
The searchform is located at: http://www.emp-ex.nl/uitgebreid-zoeken

The problem is that once all the checkboxes are checked silverstripe will generate a url with more then 2083 characters in it and IE will not display the results. I've tried changing the form-method to POST, but when I do this the pagenumbers don't work anymore.

Is there a way to get the pagenumbers working with the post-method?

Should I rename all the checkboxes for creating a shorter URL? When I do this I have to rebuild all the queries written for the search.

Does anybody know a solution for my problem?

Thanks in advance!

Avatar
Ingo

19 October 2007 at 2:15pm Forum Moderator, 801 Posts

POST is the way to go here i guess. which "pagenumbers" are you referring to?

Avatar
blaater

21 October 2007 at 5:23am Community Member, 22 Posts

Hello Ingo,

The pagenumbers are visible on the resultspage underneath the image container the number of vacancies found, did you try the submit-button at the bottom of the screen? Still have some javascript todo to get the button above the form working :)

Thanks!

Avatar
Ingo

21 October 2007 at 2:44pm Forum Moderator, 801 Posts

aah, right - didn't click on submit ;)
the problem is that DataObjectSet->Pages() just appends the "start"-GET-parameter to any existing get-parameter (this is why your search-options are retained on subsequent pages).
this logic doesn't work with POST-data (or as you noted, URLs longer than ~2000 chars).
there is no easy way around this - i'd recommend to store all search-parameters in a php-session, and give a unique hash back to the URL.

in your page-controller's init(), you could check for an existing hash-parameter, and populate the $_POST-array from the session-data belonging to the hash. this is a bit hacky, but easier that to properly customize SearchForm and DataObjectSet :)

Avatar
blaater

23 October 2007 at 9:53am Community Member, 22 Posts

Hey Ingo,

Thanks for the support.
It worked out the way you said!