Lee Eather
Lee Eather

Reputation: 355

how to use key/value pairs in ajax call for jquery data option

Ive been checking out how to add variables to a ajax request which I can use in my server side script. I checked this stackoverflow post here and checked the jquery api docs here for a ajax request. I am getting error variable in my code is not defined.

I have this line in my code

return $.ajax({
      type: 'GET',
      url: '/users/show', 
      data: {'currentusershow': variable},
    });

I was wanting it to do something like this with the results so I can keep all my different script in the one file.

if ($.get("currentusershow")) { 
// do something here 
}
else if...

i am not sure how to add the value to my code?

Also my url does not work going to the show.js.erb where my code is kept.

Upvotes: 0

Views: 2304

Answers (2)

Lee Eather
Lee Eather

Reputation: 355

Mamun was kind of right here as I did not explain myself very well in my question but I thought I would post this and clarify my question with what I was trying to do. The ajax call should be

return $.ajax({
  type: 'GET',
  url: '/users/show', 
  data: { currentusershow: 'variable'},
});

where the key is currentusershow and the value variable is a string and leave out defining the variable else where in the code. That way the url comes through correctly to the server being /users/show?currentusershow=variable. And in my destination file add my ruby code there to use the variables. In my question that code was more a php type code as I did not know what I was doing at the time.

Upvotes: 0

Mamun
Mamun

Reputation: 68923

You need to declare and assign some value to the variable before the request. Also you need to change the method type from GET to POST.

var variable = 'some data';
/*$.ajax({
  type: 'POST',
  url: '/users/show', 
  data: {currentusershow: variable},
  success: function (response) {
    // Do something with respsone
  },
  error: function () {
     alert("error");
  }
});*/
$.get( "/users/show", {currentusershow: variable} )
 .done(function( response ) {
  //do something with the response here.
 });

Upvotes: 1

Related Questions