2011-09-27 51 views
0

我想创建一个函数,它使用jQuery函数getJSON,但我遇到了一个问题。回调的第一部分不能是变量,jQuery总是将它解释为一个字符串。jQuery getJSON回调不能是一个变量

我的代码:

$(document).ready(function() { 

function getName(callbackName, callbackVal){ 
    $.getJSON("json_server.php",{callbackName:callbackVal}, function(result){ 
    //Do stuff 
    }); 
} 

getName("name", "john"); 

}); 

导致下面的请求URL:

".../json_server.php?callbackName=john" 
instead of 
".../json_server.php?name=john" 

我已经尝试过逃跑,但只能导致错误。

我在做什么错,有什么建议?

回答

0

值属性你可以只通过一个对象:

function getName(data){ 
    $.getJSON("json_server.php",data, function(result){ 
    //Do stuff 
    }); 
} 
getName({"name": "john"}); 

或者在这样的功能构建它:

function getName(callbackName, callbackVal){ 
    var data = {}; 
    data[callbackName] = callbackVal; 
    $.getJSON("json_server.php",data, function(result){ 
    //Do stuff 
    }); 
} 
getName("name", "john"); 
+0

非常感谢你解决了这个问题。我习惯于PHP,这对我来说有点新鲜。 – Johan

+0

没问题。如果您的问题的答案有助于解决您的问题,请记住将其标记为您问题的解决方案,方法是单击旁边的绿色复选标记。 –

0

该问题与jQuery无关。这是JS对象是如何工作的,关键可以是一个字符串或文字,而不是一个变量

0

构造对象以下列方式

var x = {} 
x[callbackName] = callbackVal; 
$.getJSON("json_server.php",x, function(result){ 
    //Do stuff 
    }); 

[]语法,您可以按名称定义的属性。在这种情况下,你的callbackVal值分配给它命名为callbackName