• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 182
  • Last Modified:

Building up a query string for sorting purposes dynamically from select elements

Hi,

Having used the jquery tablesorter plugin for pagination and sorting purposes on a site, the client wants to use PHP now. Pagination is not a problem at all  - but I need an efficient way to build the query string for sort purposes when I want to be able to sort the list based on (eg) price, name. I need to be able to potentially add extra select elements (or possibily even check boxes at some stage) so the code needs to be able to handle that.

What I need to avoid is repeated occurences of the parameters in the query string eg
?sort=true&priceOrder=1&nameOrder=0&priceOrder=1
which happens if you use something like window.location.href in the jquery - i would like the string to be converted to in this instance
?sort=true&nameOrder=0&priceOrder=1

Any help much appreciated!

Cheers,

Daisy



0
daisydoos
Asked:
daisydoos
2 Solutions
 
Garry GlendownConsulting and Network/Security SpecialistCommented:
If all you need is avoid adding multiple instances of a parameter, you could put the parameter value into a associative array and fill the URL from that, e.g.:

$myparms=Array();               // init an empty array

$myparms["parm1"]="val1";
$myparms["parm2"]="val2";
$myparms["parm1"]="val3";       // second assignment for that parameter,
                                // last one counts ;)

$url="http://some.url/search.php?";
foreach ($myparms as $key => $value) {
        $url=$url."&".$key."=".$value;
}

Open in new window

Please note, this code is just a rudimentary proof-of-concept, it requires some cleanup (first "&" should be omitted, though it should work with it), values might need escaping, etc ...

0
 
zappafan2k2Commented:
Daisy,

I'm a bit confused about what exactly you are looking to do.  Are you looking for a javascript or PHP solution?  Where are the variables coming from?  Why would there be duplicates?  DO you have some sample code that isn't working?

If it's a PHP solution, I agree with Garry-G about using an associative array, but personally I would use the http_build_query() function
0
 
daisydoosAuthor Commented:
Hi,

Many thanks for getting back to me - really appreciate it. I will get back to you when I've had a chance to look at your comments. Zappafan - the sorting is done by PHP but I need to pass the values to the query string each time I change a select variable - and this needs to be done using JS. I can build the query string - as described in my initial message but I was just trying to remove repeated occurences of parameters (eg nameOrder) as you build the url up. I know it doesnt actually matter when you are using $_GET, but it's just a case of keeping the urls short and tidy.

Cheers,

Daisy
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now