Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery:如何为函数调用分配JSON值_Jquery_Json - Fatal编程技术网

Jquery:如何为函数调用分配JSON值

Jquery:如何为函数调用分配JSON值,jquery,json,Jquery,Json,在你说这是一个重复甚至关闭它之前,请阅读整篇文章。我已经在这里搜索过了,我正在尝试做的与这个网站上发布的不同。不同之处在于,我试图将JSON调用中的一个值分配给一个函数(几个类似函数中的一个),以便添加返回的总数 因此,如果我有一个类似这样的JSON调用: var count; function getMainContactCount { $.getJSON(url, function(data) { count = data; c= getCount(cou

在你说这是一个重复甚至关闭它之前,请阅读整篇文章。我已经在这里搜索过了,我正在尝试做的与这个网站上发布的不同。不同之处在于,我试图将JSON调用中的一个值分配给一个函数(几个类似函数中的一个),以便添加返回的总数

因此,如果我有一个类似这样的JSON调用:

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调用中包含计数对我没有任何好处。这就是我想要的。谢谢你,巴法雷托!