Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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 如何从ajax函数中获取值以执行另一个函数_Jquery_Getjson - Fatal编程技术网

Jquery 如何从ajax函数中获取值以执行另一个函数

Jquery 如何从ajax函数中获取值以执行另一个函数,jquery,getjson,Jquery,Getjson,我一直在寻找和阅读大约3个小时,但我不能使它的工作。我想从一个函数中得到一个值,这样我就可以用它来执行另一个函数。我读到,我必须创建一个回调,但我是新的,所以我不知道怎么做。你们能帮帮我吗 这是从php提取数据的代码: $.getJSON(callback_url, { ajax_action: 'list', ajax_data: '' }, function(data

我一直在寻找和阅读大约3个小时,但我不能使它的工作。我想从一个函数中得到一个值,这样我就可以用它来执行另一个函数。我读到,我必须创建一个回调,但我是新的,所以我不知道怎么做。你们能帮帮我吗

这是从php提取数据的代码:

                $.getJSON(callback_url, {
                ajax_action: 'list', 
                ajax_data: ''
            },   function(data){

            document.getElementById('ajax-box').innerHTML = "";

            for(i=0;i<data.length;i++){

                document.getElementById('ajax-box').innerHTML += '<div> Some data loaded here</div>';

            }
            }); 
我得到一个错误:

ReferenceError:未定义数据 如果(data.length>1){


关于,

由于
数据
的作用域不在
ajax调用
之外,因此您得到了错误

在ajax调用之外保留一个变量,并使用该变量访问数据

var d;
                $.getJSON(callback_url, {
                ajax_action: 'list', 
                ajax_data: ''
            },   function(data){
            d = data; // added in your code
            document.getElementById('ajax-box').innerHTML = "";

            for(i=0;i<data.length;i++){

                document.getElementById('ajax-box').innerHTML += '<div> Some data loaded here</div>';

            }
            }); 
// use your d here
vard;
$.getJSON(回调\u url{
ajax_操作:“列表”,
ajax\u数据:“”
},函数(数据){
d=data;//添加到代码中
document.getElementById('ajax-box')。innerHTML=“”;
对于(i=0;i
函数doAjax(postrl、postBody、callback){
$.ajax({
键入:“post”,
网址:postrl,
数据:JSON.stringify(postBody),
contentType:“应用程序/json;字符集=utf-8”,
传统的:是的,
成功:功能(数据){
回调(数据);
},
错误:函数(xhr、ajaxOptions、thrownError){
回调(thrownError);
}
});
}
doAjax(回调函数\uURL,{request\ubody\uJSON},函数(数据){
document.getElementById('ajax-box')。innerHTML=“”;

对于(i=0;我能确认
data
实际上是一个JSON数组吗?试试
console.log(JSON.stringify(data));
看看上面说的是什么。我想你知道你可以从函数(data)块内部调用另一个函数吗?只要在那里做一个条件检查,然后调用你想要的任何函数。@AlexReidy非常感谢……我忘记了!
var d;
                $.getJSON(callback_url, {
                ajax_action: 'list', 
                ajax_data: ''
            },   function(data){
            d = data; // added in your code
            document.getElementById('ajax-box').innerHTML = "";

            for(i=0;i<data.length;i++){

                document.getElementById('ajax-box').innerHTML += '<div> Some data loaded here</div>';

            }
            }); 
// use your d here
function doAjax(postUrl,postBody,callback){
$.ajax({
        type: 'post',
        url: postUrl,
        data: JSON.stringify(postBody),
        contentType: "application/json; charset=utf-8",
        traditional: true,
        success: function (data) {
        callback(data);
        },
        error: function (xhr, ajaxOptions, thrownError) {
           callback(thrownError);
        }
     });
}
doAjax(callback_url,{request_body_json},function(data){
       document.getElementById('ajax-box').innerHTML = "";
       for(i=0;i<data.length;i++){
         document.getElementById('ajax-box').innerHTML += '<div> Some data loaded here</div>';
    }
});