javascript - Jquery AJAX function - how can I use a variable for JSON? - Stack Overflow

I want to be able to supply the JSON variable name and its value via variables, instead of hard-coding

I want to be able to supply the JSON variable name and its value via variables, instead of hard-coding it:

data: {
  inputVar : inputVal
},

but doing it like that and defining

inputVar = 'myInputVar';

doesn't work, instead entering the POST variable name directly only works:

'myInputVar' : inputVal

In the end, what I'd like to acplish is to create a function that allows me to just call it to make an AJAX call in the JSON format, by supplying the JSON formatted AJAX variable and value in the function call:

makeAjaxJsonCall(fileName, postVar, postVal) {
  $.ajax({
    type : 'POST',
    url : fileName,
    dataType : 'json',
    data: {
      inputVar : inputVal
    },
    success : function(data) {
      .
      .
      .
    },
    error : function(XMLHttpRequest, textStatus, errorThrown) {
      .
      .
      .
    }
  });
}

Any ideas?

PS. I really don't know too much about JavaScript programming, so please be precise with full code when replying - thanks!

I want to be able to supply the JSON variable name and its value via variables, instead of hard-coding it:

data: {
  inputVar : inputVal
},

but doing it like that and defining

inputVar = 'myInputVar';

doesn't work, instead entering the POST variable name directly only works:

'myInputVar' : inputVal

In the end, what I'd like to acplish is to create a function that allows me to just call it to make an AJAX call in the JSON format, by supplying the JSON formatted AJAX variable and value in the function call:

makeAjaxJsonCall(fileName, postVar, postVal) {
  $.ajax({
    type : 'POST',
    url : fileName,
    dataType : 'json',
    data: {
      inputVar : inputVal
    },
    success : function(data) {
      .
      .
      .
    },
    error : function(XMLHttpRequest, textStatus, errorThrown) {
      .
      .
      .
    }
  });
}

Any ideas?

PS. I really don't know too much about JavaScript programming, so please be precise with full code when replying - thanks!

Share Improve this question asked Jul 2, 2013 at 16:28 MaxZMaxZ 7931 gold badge6 silver badges10 bronze badges 2
  • use JSON.stringify() inkling./read/javascript-definitive-guide-david-flanagan-6th/… – Dhaval Marthak Commented Jul 2, 2013 at 16:29
  • duplicate of How to create object property from variable value in javascript? – Bergi Commented Jul 2, 2013 at 16:33
Add a ment  | 

3 Answers 3

Reset to default 5

Do you want something like this?:

makeAjaxJsonCall(fileName, postVar, postVal) {
  var data = {};
  data[postVar] = postVal;
  $.ajax({
    type : 'POST',
    url : fileName,
    dataType : 'json',
    data: data,
    success : function(data) {
      .
      .
      .
    },
    error : function(XMLHttpRequest, textStatus, errorThrown) {
      .
      .
      .
    }
  });

}

You can set object values like this.

var obj = {};

//This is the same as...
obj.value1 = 'one';

//This...
var varName = 'value1'
obj[varName] = 'one';

A small explanation of the last two answers:

You can define elements of an object in this way:

var myObj = {};
myObj.element = 1;
// And using a variable just like you want:
var key = 'myKey';
myObj[key] = 2;

console.log(myObj.key); // 2

So, you can build your data object first, and then pass it to the ajax hash:

// ...

var myData = {};
myData[inputVal] = 'my value';

//...

makeAjaxJsonCall(fileName, postVar, postVal) {
  $.ajax({
    type : 'POST',
    url : fileName,
    dataType : 'json',
    data: myData, // <-------------
    success : function(data) {

// ...

Hope this helps. Regards.

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745271049a4619747.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信