【问题标题】:Update Global Variable with Ajax Success Result使用 Ajax 成功结果更新全局变量
【发布时间】:2018-08-10 22:25:50
【问题描述】:

我有以下脚本。当我执行 ajax 函数时,它会在控制台中正确打印 photobombAvatar 并使用更新的值。但是,我无法将 photobombAvatar 更新为全局变量。

<script>
var photobombAvatar = "<?php echo $this->user_data['avatar']; ?>";

$(function () {

    var uploader = new ss.SimpleUpload({
        button: btn,
        url: '<?php echo $this->form_action; ?>',
        sessionProgressUrl: 'data/js/plugins/thisSCRIPT.php',
        name: 'file',
        debug: true,
        data: {name: 'upload_avatar'},
        responseType: 'json',
        onSubmit: function (filename, ext) {
        // do a bunch of stuff
        },

        onComplete: function(file, json) {
            if (json.success) {
                var pic = new Pic();
                var photobombAvatar = json.success;
                pic.src = json.success;
            }
            console.log(photobombAvatar);  
        }
    });
});


 //another js fxn that uses the updated global photobombAvatar.

</script>

我已经阅读了一堆使用回调函数的示例,但似乎无法使其工作。这是我试过的一个例子:

 <script>
var photobombAvatar = "<?php echo $this->user_data['avatar']; ?>";

$(function photobomb(callback) {

    var uploader = new ss.SimpleUpload({
        button: btn,
        url: '<?php echo $this->form_action; ?>',
        sessionProgressUrl: 'data/js/plugins/thisSCRIPT.php',
        name: 'file',
        debug: true,
        data: {name: 'upload_avatar'},
        responseType: 'json',
        onSubmit: function (filename, ext) {
        // do a bunch of stuff
        },

        onComplete: function(file, json) {
            if (json.success) {
                var pic = new Pic();
                var photobombAvatar = json.success;
                pic.src = json.success;
                callback(json);
            }
            console.log(photobombAvatar); 
            updatedVAR(photobombAvatar); 
        }
    });
});

photobomb();

function updatedVAR(photobombAvatar) {
    console.log(photobombAvatar);

    // do the rest of the js I need with the updated photobombAvatar value.
}

</script>

提前感谢您的任何建议或想法。

【问题讨论】:

    标签: javascript php jquery callback global-variables


    【解决方案1】:

    您正在 onComplete 函数中定义 photobombAvatar 新的。删除 photobombAvatar 前的var。喜欢:

     onComplete: function(file, json) {
                if (json.success) {
                    var pic = new Pic();
                    var photobombAvatar = json.success;
                    pic.src = json.success;
                    callback(json);
                }
    

    改为:

     onComplete: function(file, json) {
                if (json.success) {
                    var pic = new Pic();
                    photobombAvatar = json.success;
                    pic.src = json.success;
                    callback(json);
                }
    

    【讨论】:

    • 谢谢@Mike Aron。这仍然不会更新后续函数的全局变量。有什么想法吗?
    猜你喜欢
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多