0

I want to use a variable in jQuery.ajax {data {action}

I get this Error:

SyntaxError: missing : after property id

if I replace "+id+" with "61" its working perfect.

var id = 61;
jQuery.ajax({
    method: "POST",
    url: "/?someurl",
    data: {
      table: "__databasename",
      action: "edit",
      "data["+id+"][persons]": value
    }
  })
  .done(function(msg) {
    alert("Data Saved: " + msg);
  });
mplungjan
  • 169,008
  • 28
  • 173
  • 236

1 Answers1

0

"data["+id+"][persons]": value is invalid JS

You cannot have a variable on the left of an assignment unless you use the new ES6 syntax:

var dataObj = {
  table: "__databasename",
  action: "edit",
  ["data[" + id + "][persons]"] : value
}

vs

var dataObj = {
  table: "__databasename",
  action: "edit"
};
dataObj["data[" + id + "][persons]"] = value; // standard, assign after

Like this:

var value = "zzz";
var id = 61;
var dataObj = {
  table: "__databasename",
  action: "edit",
  ["data[" + id + "][persons]"] : value // ES6
};
// dataObj["data[" + id + "][persons]"] = value; // standard, assign after

console.log(dataObj)
/*
jQuery.ajax({
    method: "POST",
    url: "/?someurl",
    data: dataObj
  })
  .done(function(msg) {
    alert("Data Saved: " + msg);
  });
*/
mplungjan
  • 169,008
  • 28
  • 173
  • 236