0

我有一个函数,它使用 2 种方法为 php 脚本调用 POST 事件。一个是调用后document.ready返回一个 ID。第二个我想为第二种方法发送该 ID,该方法将从该 ID 中找到所有附加信息。

第一种方法会起作用,但第二种方法不起作用。我可以从 jquery 函数事件创建一个全局变量吗,即

... function(data){
Record=Data; 
}

这是创建全局变量的方法吗?

我的代码:

function getAttachRecords(metodo, id){
    RegId = "";
    jQuery.ajax({
        type: "GET",
        async: true,
        url: "source/getAttchRecord.php",
        data:{method: metodo, id: id},
        cache: true,
        dataType: "html",
        contentType: "application/x-www-form-urlencoded;charset=ISO-8859-15",
        success: function(data,textStatus,jqXHR){   

            if(metodo ="truncRecord"){  
                RegId = data;           
              $('#file_upload').uploadify({
                'formData'     : {
                            'timestamp' : '<?php echo time();?>',
                            'token'     : '<?php echo md5("unique_salt" . $timestamp);?>',
                            'registo'   : RegId             
                        },
                'uploader'  : 'source/uploadify/upload.php',
                'swf'      : 'source/uploadify/uploadify.swf',
                'script'    : 'source/uploadify/upload.php',
                'cancelImg' : 'source/uploadify/cancel.png',
                'folder'    : 'source/uploadify/uploads',
                'auto'      : true,
                'onSelect': function(){
                                    $("#table_content").slideUp();
                                },
                'onQueueComplete' : function() {
                                    $("#table_content").slideDown();
                                    getAttachRecords("getAttachRecords", RegId);  


                                }
              });
            }else{
                alert(data);
                $("table").find("#table_content").html(data);
            }
        }
    });
}
4

3 回答 3

3

window应该总是在范围内,所以只需添加你的变量:

//alert(bar); // `foo` is undefined up here

(function(){
  (function(){
    (function(){
      // some nested scope
      window.foo = 'bar';
    })();
  })();
})();

alert(foo); // `foo` now contains 'bar'

不过要小心,因为(尤其是使用 ajax)它不能保证在你使用它时可用,所以最好也检查一下:

if (typeof foo !== 'undefined'){
  alert(foo);
}

但是,您也可以在该范围内之前定义它:

var foo;

(function(){
  (function(){
    (function(){
      // some nested scope
      foo = 'baz';
    })();
  })();
})();

alert(foo); // 'baz'
于 2013-03-05T21:21:11.067 回答
1

只需在回调或其他包装函数之外定义它:

var Record;

function getNewRecord () {
   Record = 'new data';
}

也就是说,如果该值是由回调设置的,那么除了从成功函数内部或触发其他事件/回调之外,您将无法确定何时更新此值。

于 2013-03-05T21:23:11.603 回答
0

我发现了问题

如果(metodo =“truncRecord”){

这个 if 语句是错误的,它应该是:

如果(metodo =="truncRecord"){

更改后一切正常

于 2013-03-06T00:47:20.967 回答