如何将数据库中的数据提取到javascript文件中并将其存储在数组中?
我正在为我的学校项目构建一个货币转换器应用程序,目前我正在尝试将数据从数据库中获取到一个如何将数据库中的数据提取到javascript文件中并将其存储在数组中?,javascript,jquery,mysql,codeigniter,get,Javascript,Jquery,Mysql,Codeigniter,Get,我正在为我的学校项目构建一个货币转换器应用程序,目前我正在尝试将数据从数据库中获取到一个.js文件中。确切的目标是从数据库中获取数据并将其保存到.js文件中的数组中 据我所知,无法将数据从数据库直接获取到JavaScript文件中,因此我尝试使用JQuery和PHP组合,如中所述 我有一个名为“货币”的数据库,它有六列:id、basecur1、basecur2、basecur3、basecur4、basecur5。 id字段用于用户id,basecur字段用于存储用户的首选货币,只能包含货币代码
.js
文件中。确切的目标是从数据库中获取数据并将其保存到.js
文件中的数组中
据我所知,无法将数据从数据库直接获取到JavaScript文件中,因此我尝试使用JQuery和PHP组合,如中所述
我有一个名为“货币”的数据库,它有六列:id、basecur1、basecur2、basecur3、basecur4、basecur5
。
id
字段用于用户id,basecur
字段用于存储用户的首选货币,只能包含货币代码的三个字符(如USD
或GBP
)或为空。我需要得到一个结果,看起来像常量数组_name=[“欧元”、“英镑”、“美元”]代码>
请注意我将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;
?>
任何帮助都将不胜感激。我认为您没有传递有效的url
尝试添加错误函数以获取一些信息:
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)
}
查看是否因为这些行而获得了任何内容,您已经拥有了一个有效的json字符串:
$post_data = json_encode($base_currencies);
echo $post_data;
exit;
由于您已经设置了数据类型:“json”
jquery将把结果解析为json字符串,而不考虑头
因此:
您可以使用console.log进行调试,这是一个非常有价值的工具,可以帮助您了解并确保您在代码的各个方面都得到了想要的东西。正如另一位用户所建议的,确保控制台中没有任何404错误query.php
看起来不是有效的CodeIgniter路由。您正在尝试将结果保存在.js
文件中?或者你的代码似乎显示了相反的结果,这是一个输入错误吗?我正在尝试将结果存储在.js
文件中的数组中。很抱歉,如果原始描述不清楚,我将更改它。您的代码在哪里可以保存为.js
文件?(tbh应将其保存为.json
文件)。您确定不想只提供json响应,而不想将(一个实际的物理文件)保存到磁盘上吗?我收到了[object object]
消息。
$post_data = json_encode($base_currencies);
echo $post_data;
exit;
success: function(data) {
result = data;
}