?
Solved

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

Posted on 2011-09-26
3
Medium Priority
?
167 Views
Last Modified: 2012-05-12
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
Comment
Question by:daisydoos
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
3 Comments
 
LVL 18

Accepted Solution

by:
Garry Glendown earned 1000 total points
ID: 36598477
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
 
LVL 12

Assisted Solution

by:zappafan2k2
zappafan2k2 earned 1000 total points
ID: 36598935
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
 

Author Comment

by:daisydoos
ID: 36709153
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

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article shows how to create and access 2-dimensional arrays in JavaScript.  It includes a tutorial in case you are just trying to "get your head wrapped around" the concept and we'll also look at some useful tips for more advanced programmers. …
Having worked on larger scale sites, we found out that you are bound to look at more scalable solutions to integrating widgets, code snippets or complete applications and mesh them into functional sites, in any given composition. To share some of…
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…
Suggested Courses

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question