如何在这个Post,Global中做出变量?

时间:2018-04-30 09:41:20

标签: javascript php codeigniter

如何在这篇文章中创建变量,Global? console.log(BANK_NAME)在它的POST函数内部返回值但是在它之外是未定义的吗?任何人都可以帮我解决这个问题吗?

var param={'id':$('#bankId').val()};
BANK_NAME;
$.post('<?php echo base_url(); ?>Employees/loadBankDataByID',param,function(data){
    // console.log(data);
    var obj=JSON.parse(data);
    obj=obj[0];

    var BANK_NAME = obj.BANK_NAME;
    console.log(BANK_NAME);  // it returns that value.
});
console.log(BANK_NAME);  // it say undefined here/

1 个答案:

答案 0 :(得分:2)

这种情况正在发生,因为您的POST请求是异步的。换句话说,它发生在(同步)代码执行的正常流程之外。

所以这是一个在邮递员发出信件之前试图打开这封信的问题。

使用AJAX,您需要使用在请求完成时运行的回调。你已经在使用一些代码了。只需确保依赖于请求结果的所有代码都在回调中。

//initiate the request
var req = $.post('<?php echo base_url(); ?>Employees/loadBankDataByID',param);

//log a callback to run after the request succeeds
req.done(function(data){
    var obj=JSON.parse(data);
    obj=obj[0];
    var BANK_NAME = obj.BANK_NAME;
    console.log(BANK_NAME);
});

//we can log multiple callbacks - anything that depends on the request should go in one
req.done(function() {
    alert('request complete!');
});