我遇到了jquery post()函数的问题。我有几个按钮,我使用一个post功能来处理所有按钮。我似乎无法让变量的帖子名称起作用。
我的代码如下:
JS
注意:“editor”变量是在我的应用程序的init上设置的变量,并且已经存在于此代码的范围内。
controls.find('button').live('click',function(){
//determine what button is clicked
var action = this.className;
$.post("actions.php",action: editor);
//functions run after post
});
变量似乎没有通过。当我将变量更改为字符串时,它工作正常。我也试过运行toString();我的动作变量上的函数没有任何变化。
任何想法都将不胜感激。
答案 0 :(得分:4)
必须序列化数据变量。
$.post("actions.php",{'action':action,'editor':editor});
如果这是一个GET,URL将如下所示:
actions.php行动= ACTION_VALUE&安培;编辑= EDITOR_VALUE
答案 1 :(得分:0)
这是无效的JavaScript:
action: editor
如果editor
是代码中其他位置定义的变量,那么您可能正在尝试发送对象:
{ action: editor }
对象有一个名为“action”的属性,其值与editor
相同。在这种情况下:
editor
]”的帖子正文。action
变量未使用,也未发送到服务器。帖子正文通常采用“key1 = value1& key2 = value2”的形式。 jQuery获取一个转换为帖子正文的对象。这样的对象看起来像{ key1: "value1", key2: "value2" }
。所以你的电话会是这样的:
$.post("url.php", { key1: "value1", key2: "value2" });
或者,如果您为值定义了变量:
$.post("url.php", { key1: value1, key2: value2 });
在这里猜猜......也许你想要的是:
$.post("actions.php", { action: action, editor: editor });
修改:根据您的评论,这可能是您想要的:
var postData = {};
postData[action] = editor;
$.post("actions.php", postData);
没有用于从变量指定属性名称的对象文字语法。你必须使用上面的方括号表示法。