Javascript 如何将查询到的数据(通过post)放到jquery图表上?
我正在使用mdb引导来显示保存在数据库中的数据。我遇到的问题是,当我使用Javascript 如何将查询到的数据(通过post)放到jquery图表上?,javascript,jquery,chart.js,Javascript,Jquery,Chart.js,我正在使用mdb引导来显示保存在数据库中的数据。我遇到的问题是,当我使用$.post时,我的饼图消失了。控制台中的错误是Uncaught SyntaxError:Unexpected identifier,它出现在var hold=1行我不熟悉javascript,在这里看不到我的错误。这是我的密码: <!-- Charts --> <script> $(document).ready(function(){ //pie var ctxP = docum
$.post
时,我的饼图消失了。控制台中的错误是Uncaught SyntaxError:Unexpected identifier
,它出现在var hold=1行代码>我不熟悉javascript,在这里看不到我的错误。这是我的密码:
<!-- Charts -->
<script>
$(document).ready(function(){
//pie
var ctxP = document.getElementById("pieChart").getContext('2d');
var myPieChart = new Chart(ctxP, {
var hold = 1;
var data_String;
data_String = 'hold='+hold
$.post('fetch/ft-invoice-breakdown.php',data_String,function(data){
var data = jQuery.parseJSON(data);
});
type: 'doughnut',
data: {
labels:['Pending', 'Approved', 'Paid', 'Blocked', 'Cancelled'],
datasets: [
{
data: [9, 6, 4, 1, 0],
backgroundColor: ["#F7464A", "#46BFBD", "#FDB45C", "#949FB1", "#4D5360"],
hoverBackgroundColor: ["#FF5A5E", "#5AD3D1", "#FFC870", "#A8B3C5", "#616774"]
}
]
},
options: {
responsive: true
}
});
});
</script>
我的警报(图表数据)代码>打印未定义的
更新2:PHP'post'的响应是[1,5,8,0,0]
由于$ajax
请求被发送,除非您设置async:false
,否则我认为您需要在收到响应后绘制图表
比如:
function drawChart(chartData){
//pie
var ctxP = document.getElementById("pieChart").getContext('2d');
var myPieChart = new Chart(ctxP, {
type: 'doughnut',
data: {
labels:['Pending', 'Approved', 'Paid', 'Blocked', 'Cancelled'],
datasets: [
{
data: chartData,
backgroundColor: ["#F7464A", "#46BFBD", "#FDB45C", "#949FB1", "#4D5360"],
hoverBackgroundColor: ["#FF5A5E", "#5AD3D1", "#FFC870", "#A8B3C5", "#616774"]
}
]
},
options: {
responsive: true
}
});
}
$(document).ready(function(){
$.ajax({
url: '../fetch/ft-invoice-breakdown.php',
type: 'POST',
success: function(msg){
drawChart(msg); //Call this method on successful data retrieval with msg as parameter
}
});
});
由于$ajax
请求被发送,除非您设置async:false
,否则我认为您需要在收到响应后绘制图表
比如:
function drawChart(chartData){
//pie
var ctxP = document.getElementById("pieChart").getContext('2d');
var myPieChart = new Chart(ctxP, {
type: 'doughnut',
data: {
labels:['Pending', 'Approved', 'Paid', 'Blocked', 'Cancelled'],
datasets: [
{
data: chartData,
backgroundColor: ["#F7464A", "#46BFBD", "#FDB45C", "#949FB1", "#4D5360"],
hoverBackgroundColor: ["#FF5A5E", "#5AD3D1", "#FFC870", "#A8B3C5", "#616774"]
}
]
},
options: {
responsive: true
}
});
}
$(document).ready(function(){
$.ajax({
url: '../fetch/ft-invoice-breakdown.php',
type: 'POST',
success: function(msg){
drawChart(msg); //Call this method on successful data retrieval with msg as parameter
}
});
});
您需要在对象外部进行第一次ajax调用,并在对象内部存储数据。然后调用一个以参数作为数据的函数并对其进行初始化…将所有代码放在一个函数中,将ajax数据对象作为参数传递,并将其放置在属性中…@AneesIjaz如何在之后将对象转换为数组?$。ajax
是一项异步任务。您应该将代码警报()移动到success:
或wait
result@MadhanVaradhodiyil我只是在这里使用alert()
作为调试方法。查看是否可以在ajax请求外部访问变量chartData
。您需要在对象外部进行第一次ajax调用,并在对象内部存储数据。然后调用一个以参数作为数据的函数并对其进行初始化…将所有代码放在一个函数中,将ajax数据对象作为参数传递,并将其放置在属性中…@AneesIjaz如何在之后将对象转换为数组?$。ajax
是一项异步任务。您应该将代码警报()移动到success:
或wait
result@MadhanVaradhodiyil我只是在这里使用alert()
作为调试方法。看看是否可以在ajax请求之外访问变量chartData
。这似乎几乎可以实现。但是我现在得到了mdb.min.js:1未捕获的TypeError:Object.defineProperty调用了非Object
现在是php aJSON
的响应,你能发布示例数据吗?响应是一个数组[1,5,8,0,0]
。没有json,这是我的错,我应该在我的帖子中更新它,我不太清楚为什么会出现这个错误!下面是一个plunkr演示:它是否与没有包含在
标记中的代码有关?这似乎几乎可以理解。但是我现在得到了mdb.min.js:1未捕获的TypeError:Object.defineProperty调用了非Object
现在是php aJSON
的响应,你能发布示例数据吗?响应是一个数组[1,5,8,0,0]
。没有json,这是我的错,我应该在我的帖子中更新它,我不太清楚为什么会出现这个错误!下面是一个plunkr演示:它是否与未包含在
标记中的代码有关?