不确定以下为何不起作用。我希望有人能说清楚。
我有一个全局参数,它重新表示数据库中某个项的某个id。现在,为了检查数据库是否应该更新或者是否应该为项目创建新条目,我在进行ajax调用之前检查是否设置了变量。如果设置了变量,我知道我必须更新数据库,如果没有设置我知道我必须插入数据库。然后在服务器端,我会在插入时返回一个新生成的id,或者在更新的情况下返回旧的id。我使用jQuery表单并按顺序验证插件(因此函数调用ajaxSubmit())。但是,submitHandler的成功函数中的赋值似乎不起作用(我已检查过data.poiId返回可疑结果)。
$(document).ready(function() {
// Function which examines window.location.href and extracts a numerical id if there is one specified in the query
var id = getParameter('poiId')
...
},
submitHandler : function(form) {
var str = 'submitPOI.php';
if (id.length > 0) str += '?poiId=' + id;
$(form).ajaxSubmit({
url : str,
type : 'POST',
dataType : 'json',
success : function(data) {
id = data.poiId // Update POI id with response from server
}
});
}
...
});
答案 0 :(得分:4)
在我看来,你的id变量不是全局的,因为它在$(document).ready()函数中声明。将其移到函数外部并检查它是否有效。