Jquery:如何为函数调用分配JSON值
在你说这是一个重复甚至关闭它之前,请阅读整篇文章。我已经在这里搜索过了,我正在尝试做的与这个网站上发布的不同。不同之处在于,我试图将JSON调用中的一个值分配给一个函数(几个类似函数中的一个),以便添加返回的总数 因此,如果我有一个类似这样的JSON调用:Jquery:如何为函数调用分配JSON值,jquery,json,Jquery,Json,在你说这是一个重复甚至关闭它之前,请阅读整篇文章。我已经在这里搜索过了,我正在尝试做的与这个网站上发布的不同。不同之处在于,我试图将JSON调用中的一个值分配给一个函数(几个类似函数中的一个),以便添加返回的总数 因此,如果我有一个类似这样的JSON调用: var count; function getMainContactCount { $.getJSON(url, function(data) { count = data; c= getCount(cou
var count;
function getMainContactCount {
$.getJSON(url, function(data) {
count = data;
c= getCount(count);
return c;
});
}
function getCount(count) {
return count;
}
var count;
function getMainContactCount {
$.getJSON(url, function(data) {
count += data.length;
// Whatever you you need to do with count, do it here.
// Like this:
alert(count) // just checking if we have the right value
// couldn't resist adding an alert :)
});
}
请注意,我的第二个函数表示返回计数而不是警报计数。这对警报很好,因为警报会立即发生,但显然不会返回
然后在我的document ready(文档准备就绪)(上面的脚本位于随附的脚本文件中)中,我执行以下操作:
c= getMainContactCount();
count = getCount(c);
这显然行不通,但这是我需要做的本质。我需要在我的文档中准备好能够从数据库返回所有计数,然后将它们添加到一起。大约有10个表,因此似乎更容易将所有值返回到文档中,然后添加它们。但这可能不是正确的方法。我不想做的是提醒值,因为这无助于我添加值。首先,
getJSON
是异步的。因此getMainContactCount
实际上不返回任何内容
其次,count=getCount(c)
相当于count=c
你想在这里干什么
如果您想获得一个值,那么稍后使用它,在加载时分割脚本执行
var myPageLoadingScripts = function(count){
//You can use count here.
...
}
$(function(){
$.getJSON(url, myPageLoadingScripts);
});
我想你正在寻找这样的东西:
var count;
function getMainContactCount {
$.getJSON(url, function(data) {
count = data;
c= getCount(count);
return c;
});
}
function getCount(count) {
return count;
}
var count;
function getMainContactCount {
$.getJSON(url, function(data) {
count += data.length;
// Whatever you you need to do with count, do it here.
// Like this:
alert(count) // just checking if we have the right value
// couldn't resist adding an alert :)
});
}
编辑
要重用相同的回调,请在getJSON
调用之外定义它:
// Define a global count var
var count;
// Define a single callback to reuse
var addCount = function(data) {
count += data.length;
alert(count); // just a test, remove the alert later
}
// Do several ajax calls to the json
$.getJSON('/some_url', addCount);
$.getJSON('/some_other_url', addCount);
$.getJSON('/yet_another_url', addCount);
你想干什么?您不能从AJAX调用返回,它们是异步的。好吧,那么我如何获得我的值呢?同样,我不想提醒它。上面的例子如下,但我需要找到一些方法来获取值,而不是提醒它。你最好用服务器端代码编写它。e、 g:
var count=
其中$count将是您试图从Ajax callI中获取的内容。我需要能够将计数分配给脚本正文中的一个变量。因此,计数是在第二个函数中计算的?同样,我需要能够有多个类似的函数,每个函数都有自己的JSON调用。如果我必须有多个JSON调用,那么在JSON调用中包含计数对我没有任何好处。这就是我想要的。谢谢你,巴法雷托!