我已经完成了Scriptaculous的一些工作,现在我正在向JQuery倾斜,看看我最喜欢哪两个框架。我正在遇到一些令我感到奇怪的行为......
$.ajax({
type: "POST",
url: "addcart.php",
data: "userID="+ userID + "&cardID=" + cardID + "&cardQTY=" + cardQTY + "&set=m10",
success: function(msg){alert("succeed " + msg)},
error: function(msg){alert("fail " + msg)}
});
我尽量让我的变量名在页面之间尽可能相似,所以我试图将“variable name = variable value”传递给我的PHP。然而,这个调用不断传递“foo = foo& bar = bar insead of”userID = foo& cardID = bar“,这引起了相当多的混乱,直到我注意到发生了什么。
我想我的问题是,我是否以某种方式触发了一些错误,或者这是JQuery的故意特征?当我试图做“$('#variable')时,我觉得它很方便,如果它是有意的......
编辑添加:
在接收端,一切似乎都运转正常。只是变量名称不是我所期望的,因为它传递的是变量value = variable value而不是name = value
当我将代码更改为下面时,函数按照我的意图运行,我假设因为名称不会在任何地方用作变量:
$.ajax({
type: "POST",
url: "addcart.php",
data: "UID="+ userID + "&CID=" + cardID + "&QTY=" + cardQTY + "&set=m10",
success: function(msg){alert("succeed " + msg)},
error: function(msg){alert("fail " + msg)}
});
我更喜欢保持变量名称相同,所以我认为下面的答案对我有用吗?
答案 0 :(得分:1)
这不是一个错误,它是一个功能! JQuery试图通过将参数数据作为对象属性传递而不是摆弄字符串操作和编码来使您的生活更轻松。
data: {
userID: userID,
cardID: cardID,
cardQTY: cardQTY,
set: 'm10'
}
它似乎支持传递自定义查询字符串,你确定它正确构建了吗?