首页 > 解决方案 > 从 AJAX 函数中为另一个外部函数检索数据

问题描述

我需要使用 ajax 调用获取新文件名,以便可以在另一个函数中使用它。这是我试图从 setup_file 函数中检索的新文件名的原始调用。文件数组包含我需要的所有数据,包括原始文件名。

var newfilename = setup_file(file);

但是当我尝试从所述函数返回我需要的数据时,它不起作用。

function setup_file(file) {

var newfilename;

  var newtitle = jQuery("#choosetitle").val();
  var aspect = jQuery("#chooseaspect").val();
  var uploadlanguage = jQuery("#uploadlanguage").val();


  jQuery.ajax({
        url: '/wp-admin/admin-ajax.php',

        type : 'POST',
        async: false,
        datatype : 'JSON',
        data : {action : 'process_uploads',fileinfo: file,filetitle : newtitle, aspect : aspect, uploadlanguage : uploadlanguage},
        success : function(data){

            var json = JSON.parse(data);
            var newfilename = json['filename'];

alert(newfilename);
//this alerts fine.

  }

});

return newfilename;
//thisreturnsnothing, however if I change it to return 'Whatever'; it does return Whatever.
}

标签: ajax

解决方案


您在成功块中再次创建了相同的变量,这导致外部变量为空。更改

var newfilename = json['filename'];

newfilename=json['filename']

在成功块中。


推荐阅读