2016-03-30 19 views
0

kullanarak çizdirme Yardım alabileceğiniz bir sorunum var. Birkaç öğretici ve burada birkaç soru okudum ama hiçbiri soruma cevap vermiyor gibi görünüyor. Ben mesela böyle bir JSON yanıtı şey (konsol günlüğe çıktı) ile geri geliyor benim PHP dosyasına bir ajax talep ediyorum:JSM verilerini Chart.js

{ Email addresses: 4, IP addresses: 2, Names: 1 } 

ben üzerine bunu al ve çizmek mümkün olmak istiyorum Chart.js kullanarak bir grafik ancak ben denedim:

$.each(res, function(i, item) { 
    data = { 
     label: i, 
     value: item 
    } 
} 
var myDoughnutChart = new Chart(ctx).Pie(data); 

sorun yalnızca bir renk ve bir değere sahip bir etiket ile dolduruyor olduğunu.

{ "Label":"Email addresses","Value":"4" } 

değişim JavaScript/JQuery kullanılarak yapılabilir olurdu: o okuyabilir yüzden JSON çıktı biçimini değiştirebilirsiniz bir yolu var mı. Ben etiketleri hep bazen JSON çıkış gibi farklı olabilir aynı değildir işaret gerekir:

{ Usernames: 3, Passwords: 3, Names: 1 } 

Yine yukarıdaki konsola çıkışı ben aldığım tek şeydir.

Ayrıca, JQuery veya başka bir $ .each() kullanarak belki de bu konuda grafikleme yapmaya gider miydim? Herhangi bir yardım, bu sorunun uzunluğu için üzgünüm, takdir edilecektir.

+0

Döngünün her yinelemesiyle 'data 'üzerine yazılır. Bunun yerine data.push ({label: i, value: item}); Ve 'data'ın önce bir dizi olduğundan emin olun. – Daedalus

cevap

2

Geçerli öğeyle eşit hale getirdiğinizde ve döngüden sonraki son öğeye eşit olacak şekilde her zaman data'u geçersiz kılarsınız. Öğeye öğe eklemeniz gerekiyor, bu nedenle grafikte daha fazla öğe olacak.

$.each(res, function(i, item) { 
    if (!Array.isArray(data)) { 
     data = []; 
    } 
    data.push({ 
     label: i, 
     value: item 
    }); 
} 
var myDoughnutChart = new Chart(ctx).Pie(data); 
+1

Teşekkürler, bu benim için iyi çalıştı. Yardımı takdir ediyorum. – Dave

+1

Rica ederim, şerefe –

0

çok kolay

başlangıçta etiket ve değer ve renk ve tüm gibi bazı opsiyonel özellikler kabul edildi .. senaryoyu chart.js ve E-posta adresleri ve ip adresleri ile etiket ve değer yerine gidin onun. ..

umarım yardım edin vl