9

我正在尝试在 jquery 的 AJAX 调用中使用变量,但它不起作用。move 变量包含不同的值。请检查以下代码:

var $move = 'next';

$.ajax({
   type: "POST",
   url: "somephp.php",
   data: {$move:1},
});

建议任何在数据中使用 $move 变量的方法。

4

7 回答 7

14

如果要将变量用作属性的名称,请使用数组表示法。

有两种访问对象成员的方法:点表示法和方括号表示法(又名下标运算符)。

您的带有数组表示法的代码:

var $move = 'next';
var data = {};
data[$move] = 1;

$.ajax({
   type: "POST",
   url: "somephp.php",
   data: data,
});

jsfiddle 上的示例(该帖子显然不起作用,因此请检查控制台以查看发布的内容。)

于 2012-07-27T11:56:51.687 回答
8

如果你想在你的 POST 请求中有一个变量,你需要创建一个单独的JSON 对象:

var name = 'next';
var dataObject = {};
dataObject[name] = 1;

$.ajax({
   type: "POST",
   url: "somephp.php",
   data: dataObject,
   complete : function() {
     // success!
   }
});
于 2012-07-27T11:54:11.820 回答
3

它应该是

$.ajax({
   type: "POST",
   url: "somephp.php",
   data: {"data":$move},
});
于 2012-07-27T11:54:28.630 回答
2

你可以做类似的事情data: $move+"=1"

于 2012-07-27T11:56:22.667 回答
0

要发布 $move 变量的值,请执行以下操作:

$.ajax({
   type: "POST",
   url: "somephp.php",
   data: {move: $move}
});
于 2012-07-27T11:54:51.390 回答
0

我一直在寻找这样的东西。我想有一个变量作为键和一个变量作为值。

let dataPair = {};
dataPair[dataKey] = dataValue;
$.ajax({
  url: TheAPIPath,
  data: dataPair,
  method: "GET",
(etc)
于 2019-06-18T22:59:47.217 回答
-1

看起来您正在尝试在 javascript 中使用 PHP 变量。您可以使用 .serialize 收集数据并将其传递给 ajax 调用。但是对于使用不同的命名变量为值对的名称进行调用,您需要从您传递的 php 页面中收集该信息。

例子:

$.get("jQueryFunctions.php?action=checkCaptula",$('#resetPasswordDiv :input').serialize()).done(function(data){ ....

虽然这是一个 .get 而不是 .ajax,但它只是 .ajax 调用的简写。passwordDiv 包含带有名称和 id 的 HTML 输入。它收集信息并将其传递给 php 页面进行处理。

于 2012-07-27T11:58:02.780 回答