Как сделать переменную внутри этого поста, Global? - PullRequest
0 голосов
/ 30 апреля 2018

Как сделать переменную внутри этого поста, 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 голосов
/ 30 апреля 2018

Это происходит потому, что ваш запрос 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!');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...