2017-10-31 1 views
0

Ich verwende c3js in meiner Webanwendung, ich habe eine Donut Chart in meine Ansicht hinzugefügt und alles funktioniert gut!Zurückgeben eines JSON-Objekts nach dem Klicken auf Donut-Diagramm (c3js)

Aber, wenn ich das JSON-Objekt aus der Zone angeklickt abrufen möchten, erhalte ich ein Objekt vom Typ SVGPathElement, nachdem er in der Konsole angezeigt wird, versuche ich es zu JSON zu konvertieren, aber nicht funktioniert:

Wie bekomme ich die Daten vom angeklickten Element?

Mein Code ist ähnlich wie:

var chart = c3.generate({ 
    data: { 
     columns: [ 
      ['data1', 30], 
      ['data2', 120], 
     ], 
     type : 'donut', 
     onclick: function (d, i) { console.log("onclick", d, i); }, 
     onmouseover: function (d, i) { console.log("onmouseover", d, i); }, 
     onmouseout: function (d, i) { console.log("onmouseout", d, i); } 
    }, 
    donut: { 
     title: "Iris Petal Width" 
    } 
}); 
+0

Der Parameter 'd' alle Daten enthalten sollten, die Sie benötigen, können Sie posten Sie Ihre tatsächlicher Code und Ihre erwartete Ausgabe bitte. – George

+0

Vielen Dank George, nach der Bearbeitung meines Skripts, Rückgabe JSON-Objekt, es funktioniert gut! aber wie kann ich dieses Objekt verwenden und es an meinen Action-Controller senden? Ich versuche, PHP-Code in JS hinzuzufügen, aber funktioniert nicht ... bitte. –

Antwort

0

Sie es mit Ajax senden

var chart = c3.generate({ 
    data: { 
     columns: [ 
      ['data1', 30], 
      ['data2', 120], 
     ], 
     type : 'donut', 
     onclick: function (d, i) { 

$.ajax({ 
url:'your server php file', 
headers:{/*some headers*/}, 
data:JSON.stringify(d), 
}).then(function(data){ 
    //do something in success 
}) 

} 

    }, 
    donut: { 
     title: "Iris Petal Width" 
    } 
}); 
+0

Danke Rami für Hilfe. Ihr Code funktioniert nicht, aber ist immer noch korrekt .. nur Sie müssen Daten ändern: JSON.stringify (d) zu Daten: {"Ausgabe": JSON.stringify (d)}}. Ausgabe ist eine Variable in Controller verwendet wird, enthält es endgültige Objekt .. Vielen Dank .. Sie sind hilfreich! –

Verwandte Themen