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.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

Archive /

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

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

issue with big searchform


Go to End


5 Posts   1930 Views

Avatar
blaater

Community Member, 22 Posts

19 October 2007 at 7:52am

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

Forum Moderator, 801 Posts

19 October 2007 at 2:15pm

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

Avatar
blaater

Community Member, 22 Posts

21 October 2007 at 5:23am

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

Forum Moderator, 801 Posts

21 October 2007 at 2:44pm

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

Community Member, 22 Posts

23 October 2007 at 9:53am

Hey Ingo,

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