繁体   English   中英

如何从数据库中获取数据到JavaScript文件并将其存储在数组中?

[英]How to fetch data from the database into a javascript file and store it in array?

我正在为我的学校项目构建货币转换器应用程序,此刻,我正试图将数据库中的数据转换为.js文件。 确切的目标是从数据库获取数据并将其保存到.js文件内的数组中。

据我所知,没有办法将数据直接从数据库中获取到JavaScript文件中,因此我试图利用此线程中指出的JQuery和PHP组合。

我有一个名为'currencies'的数据库,该数据库有六列: id, basecur1, basecur2, basecur3, basecur4, basecur5 id字段用于用户标识, basecur_字段用于存储用户首选的货币,并且只能包含货币代码的三个字符(例如USDGBP )或为空。 我需要得到一个类似 const array_name = ["EUR", "GBP", "USD"];

请注意 ,我在后端使用CodeIgniter PHP框架。

在这个文件query.php我试图根据从数据库中获取的数据创建一个数组并回显它:

<?php
$current_user = $this->session->user_id; 

$query = $this->db->get_where('currencies', array('id' => $current_user));
$row1 = $query->row();
$base_currencies = array($row1->basecur1, $row1->basecur2, $row1->basecur3, $row1->basecur4, $row1->basecur5);

$post_data = json_encode($base_currencies);
echo $post_data;
?>

不幸的是,我对JavaScript没有深入的了解,因此我无法真正说出该JS代码有什么问题,该代码取自上面提到的线程,但实际上对我不起作用:

jQuery.extend({
getValues: function(url) {
    var result = null;
    $.ajax({
        url: url,
        type: 'get',
        dataType: 'json',
        async: false,
        success: function(data) {
            result = JSON.stringify(data);
        }
    });
   return result;
}
});

var array_name = $.getValues("query.php");

任何帮助都感激不尽。

由于这些行,您已经有一个有效的json字符串:

$post_data = json_encode($base_currencies);
echo $post_data;
exit;

并且由于您已经设置了dataType: 'json' jquery会将结果解析为json字符串,而不管标题如何。

从而:

success: function(data) {
        result = data;
    }

您可以使用console.log进行调试,这是一个有价值的工具,可用于学习并确保您在代码的各个点上都能得到所需的内容。 正如另一个用户建议的那样,请确保在控制台中没有出现任何404错误。 query.php看起来不像有效的CodeIgniter路由。

我认为您没有传递有效的网址,请尝试添加错误函数以获取一些信息:

var result = null;
$.ajax({
    url: url,
    type: 'get',
    dataType: 'json',
    async: false,
    success: function(data) {
        result = data
    },
    error: function(error) {
        alert(error);
    }
});
return result;

更新:尝试按照Alex的建议直接输出变量

在您的php文件中。

header('Content-Type: application/json');

在你的ajax功能

success: function(response){
console.log(resposne)
}

看看你有什么

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM