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

问题描述 投票:0回答:3

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

据我所知,没有办法将数据从数据库直接转换为JavaScript文件,所以我试图利用Qazxswpoi中指出的JQuery和PHP组合。

我有一个名为this thread的数据库,它有六列:'currencies'id, basecur1, basecur2, basecur3, basecur4, basecur5字段用于用户ID,id字段用于存储用户的首选货币,并且只能包含货币代码的三个字符(如basecur_USD)或为空。我需要得到一个像GBP的结果

请注意我使用CodeIgniter PHP框架作为后端。

在这个文件const array_name = ["EUR", "GBP", "USD"];我试图从数据库中提取的数据创建一个数组并回显它:

query.php

不幸的是,我对JavaScript没有深刻的理解,所以我不能说这个JS代码有什么问题,这个代码取自上面提到的那个,但它对我来说并不适用:

<?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 jquery mysql codeigniter get
3个回答
1
投票

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

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");

并且因为你已经设置了$post_data = json_encode($base_currencies); echo $post_data; exit; ,jquery会将结果解析为json字符串而不管头部。

从而:

dataType: 'json'

您可以使用success: function(data) { result = data; } 进行调试,它是一种有价值的学习工具,可确保您在代码中的各个点获得所需内容。正如其他用户建议的那样,请确保您没有在控制台中收到任何404错误。 console.log看起来不像有效的CodeIgniter路线。


0
投票

在你的PHP文件中。

query.php

在你的ajax功能

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

看看你是否得到任何东西


0
投票

我想你没有传递一个有效的网址尝试添加一个错误函数来获取一些信息:

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

更新:尝试直接输出变量,如alex建议的那样

© www.soinside.com 2019 - 2024. All rights reserved.