javascript - 如何在这篇文章中创建全局变量?

标签 javascript php codeigniter

如何在这篇文章中创建全局变量? 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/

最佳答案

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

所以这是一个在 postman 投递之前尝试打开信件的问题。

使用 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!');
});

关于javascript - 如何在这篇文章中创建全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50097832/

相关文章:

javascript - 如何在选择树网格上的复选框时获取其他列值

php - Wordpress 搜索 - 过滤页面和帖子

php - 当一个字段可以为空时,对两个字段进行 SQL JOIN

mysql - 允许用户使用 Codeigniter 每天提交数据 3 次

javascript - 如何使用codeigniter上传ajax文件

javascript - uglify-js 可以删除 require 和 export 语句吗?

javascript - Angular 在指令中保存来自 attr 的监视表达式

php - CodeIgniter - 从数组中获取下一条记录

javascript - CSV 太大,无法通过 AJAX 处理

php - 将功能更改为 PDO