我正在为我的学校项目构建货币转换器应用程序,此刻,我正尝试将数据库中的数据获取到.js
文件中。确切的目标是从数据库中获取数据并将其保存到.js
文件中的数组中。
据我所知,无法将数据直接从数据库获取到JavaScript文件中,因此我正在尝试利用this thread中指出的JQuery和PHP组合。
我有一个名为'currencies'
的数据库,该数据库有六列:id, basecur1, basecur2, basecur3, basecur4, basecur5
。
id
字段用于用户ID,basecur_
字段用于存储用户的首选货币,并且只能包含货币代码的三个字符(例如USD
或GBP
)或空的。我需要得到一个结果类似 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");
任何帮助将不胜感激。
答案 0 :(得分:1)
由于这些行,您已经有一个有效的json字符串:
$post_data = json_encode($base_currencies);
echo $post_data;
exit;
,由于您已经设置了dataType: 'json'
jQuery,因此无论标题如何,jquery都会将结果解析为json字符串。
因此:
success: function(data) {
result = data;
}
您可以使用console.log
进行调试,它是一种有价值的工具,可用于学习并确保在代码的各个点上都能获得所需的内容。正如另一个用户建议的那样,请确保在控制台中没有出现任何404错误。 query.php
看起来不是有效的CodeIgniter路由。
答案 1 :(得分:0)
我认为您没有传递有效的网址 尝试添加错误函数以获取一些信息:
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的建议直接输出变量
答案 2 :(得分:0)
在您的php文件中。
header('Content-Type: application/json');
在您的Ajax函数中
success: function(response){
console.log(resposne)
}
看看你有什么东西