如何将数据库中的数据提取到 javascript 文件中并将其存储在数组中?

Posted

技术标签:

【中文标题】如何将数据库中的数据提取到 javascript 文件中并将其存储在数组中?【英文标题】:How to fetch data from the database into a javascript file and store it in array? 【发布时间】:2019-09-18 13:15:22 【问题描述】:

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

据我所知,没有办法将数据库中的数据直接存入 javascript 文件,因此我正在尝试使用 this thread 中指出的 JQuery 和 php 组合。

我有一个名为'currencies' 的数据库,它有六列:id, basecur1, basecur2, basecur3, basecur4, basecur5id 字段用于用户 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");

任何帮助将不胜感激。

【问题讨论】:

您正在尝试将结果保存在.js 文件中?还是因为您的代码似乎显示相反的错误输入 我正在尝试将结果存储在 .js 文件中的数组中。对不起,如果原描述不清楚,我会改变它 您将其保存为.js 文件的代码在哪里? (它应该保存为.json 文件)。你确定你不想只提供一个json响应而不是保存(一个实际的物理文件)到磁盘吗? 【参考方案1】:

因为这些行,你已经有了一个有效的 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 路由。

【讨论】:

【参考方案2】:

在你的 php 文件中。

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

在你的 ajax 函数中

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

看看有没有收获

【讨论】:

【参考方案3】:

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

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 的建议直接输出变量

【讨论】:

我收到[object Object] 消息。

以上是关于如何将数据库中的数据提取到 javascript 文件中并将其存储在数组中?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 SELECT 查询中的数据作为 <option> 提取到 <select>

如何使用 SSIS 将 OTM 中的数据提取到 SQL Server 中?

如何使用从 javascript/html 中的外部 php 文件中提取的 JSON 数据?

如何将所有数据提取到拆分行中的雪花对象数组中?

如何将系数值从逻辑回归中提取到 R 中的数据框中? [复制]

如何将excel表格中多行的部分数据分别提取到另一表格中指定的多行固定位置?