JFFF
JFFF

Reputation: 989

Filter JQuery list with URL

I need to modify some code already in place. There's a block of code that filters a JQuery list using the URL to populate the search input.

E.g.

http://***/store/mobile/page/productList.page?search=football

Automatically enters "football" in the search bar.

Now I'd need to filter the list, without using the search bar.

So lets say my URL would look something like this :

http://***/store/mobile/page/productList.page?football

This would filter the list with football without using the search bar.

Here's the code I need to change. Please tell me if my question is unclear.

$('div[data-url*="productList"]').live("pageshow", function() {

  filterValue = getParameterByName("search", location.search);

  if (filterValue) {

    $('input[data-type="search"]').val(filterValue);
  }

  refreshList();
});

and:

 $.each(catalog.products,
      function(index, value) {

          if ((!filterValue )
                  || value.name.toUpperCase().indexOf(filterValue.toUpperCase()) != -1
                  || value.brand.toUpperCase().indexOf(filterValue.toUpperCase()) != -1)

          {
              items.push('<li id="' + index + '">' +
                      '<a data-identity="productId"  href="./details.page?productId=' + index + '" >' +
                      '<img class="ui-li-thumb" src="' + value.thumbnail + '"/>' +
                      '<p>' + value.brand + '</p>' +
                      '<h3>' + value.name + '</h3>' +
                      '<span class="ui-li-count">' + value.price + ' $</span></li>') +
              '</a>';
          }

      });

Upvotes: 0

Views: 3736

Answers (1)

Ruslan
Ruslan

Reputation: 10147

if there will always be only 1 parameter after ? than you could simply get it from page location in javascript, e.g.

var url = document.location;
var params = url.split("?");

filterValue = params[params.length-1]
if (filterValue) {

    $('input[data-type="search"]').val(filterValue);
}

refreshList();

example: http://jsfiddle.net/yPgPc/

Upvotes: 2

Related Questions