TonyW
TonyW

Reputation: 18875

using jQuery to get url and extract url segments

On a webpage that has a list of categories, and each category title is linked in this format: http://localhost/admin/category/unpublish/2

I wrote the following js code, trying to capture the url and the segments 'unpublish' (action) and '2' (id), and need to send the request to http://localhost/admin/category

$('#statusChanges a').click(function(evt) { // use the click event of hyperlinks
  evt.preventDefault();
  var url = $(location).attr('href');
  // var action = url.segment(3);  /*JS console complains that url.segment() method undefined! */
  // var id = url.segment(4);
  $.ajax({
    type: "GET",
    url: $(location).attr('href'),
    dat: '',
    /* do I need to fill the data with json data: {"action": "unpublish, "id": 2 } ? but I don't know how to get the segments */
    success: function(data) {
      $('.statusSuccess').text('success!');
    },
    error: function(data) {
      $('.statusSuccess').text('error!');
    }
  });
}); // end of status change

Upvotes: 9

Views: 38597

Answers (3)

Girish
Girish

Reputation: 12117

Try this

var url = $(location).attr('href').split("/").splice(0, 5).join("/");

Update Answer:

User this object to get current anchor link see below

$(this).attr('href')

Upvotes: 13

thedeliciousmuffin
thedeliciousmuffin

Reputation: 814

I think you can use split. Then you can have an array to work with from which you can get the action and id.

Upvotes: 1

DJ_Polly
DJ_Polly

Reputation: 434

Split the URL into segments first:

var segments = url.split( '/' );
var action = segments[3];
var id = segments[4];

Upvotes: 9

Related Questions