2015-07-02 14 views
8

तो मैं एक Google डोनट ग्राफ बनाने की कोशिश कर रहा हूं, जिसमें कॉर्डिनेट्स की संख्या चरणीय है। यहां समस्या कथन है, मुझे एक ग्राफ बनाना है कि डेटाबेस में प्रति व्यवस्थापक कितने संपर्क जोड़े गए थे।अज्ञात संख्या के लिए Google डोनट चार्ट

उदाहरण डेटा: - व्यवस्थापक 1: - [email protected] संपर्कों की संख्या: - 4

व्यवस्थापक 2: - [email protected] संपर्कों की संख्या : - 5

व्यवस्थापक की संख्या में वृद्धि की जा सकती है, साथ ही उनसे संबंधित संपर्कों की संख्या भी बढ़ी जा सकती है, इसलिए कॉर्डिनेट्स की संख्या ज्ञात नहीं है। मैंने यह कोड बनाने के लिए यह कोड बनाया है, लेकिन यह मेरी अपेक्षाओं के अनुसार काम नहीं करता है। असल में यह बिल्कुल काम नहीं करता है। मेरा काम पूरा करने का सबसे अच्छा तरीका क्या होगा?

HTML/पीएचपी हिस्सा (ठीक काम करता है)

<?php 
       //get data here 
       try 
       { 
        $s = $conn->query("SELECT * from users"); 
       } 
       catch(PDOException $e) 
       { 
        echo $e->getMessage(); 
       } 
       $i=-1; 
       while($admins = $s->fetch(PDO::FETCH_OBJ)) 
       { 
        $i++; 
        $number = $user->get_numberofcontacts_per_admin($admins->email); 
        echo "<input type='hidden' name='a$i' id='a$i' value=$admins->email>"; 
        echo "<input type='hidden' name='c$i' id='c$i' value=$number>"; 
       } 

       ?> 
       <input type='hidden' name='ta' id='ta' value='<?php echo $i; ?>' > <!-- total admins --> 

जावास्क्रिप्ट

<script type="text/javascript"> 

    //get ta 
    var ta = parseInt(document.getElementById('ta').value); 
    var admins = new Array(); 
    for(i=0;i<=ta;i++) 
    { 
     admins[i] = document.getElementById('a' + i).value; 
     contacts[i] = parseInt(document.getElementById('c' + i).value); 
    } 
    //alert(p4); 
     google.load("visualization", "1", {packages:["corechart"]}); 
     google.setOnLoadCallback(drawChart); 
     function drawChart() { 
     var data = google.visualization.arrayToDataTable([ 
      ['Phase', 'Contacts per phase'], 

     for(i=0;i<=ta;i++) 
     { 
      ['admins[i]',  contacts[i]], 
     } 
     ]); 

     var options = { 
      title: 'Contacts per phase', 
      pieHole: 0.4, 
      is3D: true, 
     }; 

     var chart = new google.visualization.PieChart(document.getElementById('donutchart7')); 
     chart.draw(data, options); 
     } 
    </script> 
+0

आपके कोड का आउटपुट क्या है? अंतिम HTML/css/js जो आप jsfiddle.net में प्राप्त करते हैं उसे रखें ताकि हम इसकी समीक्षा कर सकें और देख सकें कि वहां क्या गलत है। ऐसा लगता है कि समस्या DrawChart फ़ंक्शन के भीतर है। यह जेएस कोड नहीं है ... आप सरणी के अंदर लूप नहीं डाल सकते हैं। – Dekel

उत्तर

1

कैसे इस सवाल का recieve 3 घंटे में 5 upvotes ..... सभी यह है large कोड है सकते हैं स्निपेट, और मुश्किल से कोई उपयोगी जानकारी।

मैं अपने PHP इनपुट को दो वैश्विक जावास्क्रिप्ट चर (सीधे छिपा HTML तत्व बनाने के बजाय) में सहेजकर शुरू करूंगा। को पूरा करने कि मैं

var data = google.visualization.DataTable(); 
    data.addColumn('string','Phase'); 
    data.addColumn('string','Contacts per Phase'); 

    for(i=0;i<admins.length;i++){ 
     data.addRow([admins[i], contacts[i]]); 
    }; 

कि दो कॉलम, चरण और चरण प्रति संपर्क जोड़ना होगा, और उसके बाद व्यवस्थापक प्रति एक पंक्ति से पॉप्युलेट साथ

var data = google.visualization.arrayToDataTable([ 
     ['Phase', 'Contacts per phase'], 

    for(i=0;i<=ta;i++) 
    { 
     ['admins[i]',  contacts[i]], 
    } 
    ]); 

की जगह चाहते हैं के बाद।

जावास्क्रिप्ट चर here में php चर को गुजरने के बारे में और पढ़ें, यदि आप रुचि रखते हैं तो बहुत अच्छी पढ़ाई।

संबंधित मुद्दे