2013-05-21 6 views
7

के माध्यम से Google चार्ट लोड करें मैं एक लिंक पर क्लिक करने के बाद Google चार्ट को कॉल करने का प्रयास कर रहा हूं।एक AJAX कॉल

function getGraphData(id) { 

    var ajax_url = '<?=URL?>ajaxlibrary/get-graph-data'; 

    $.ajax({ 
     type: 'POST', 
     url: ajax_url, 
     dataType: 'html', 
     data: ({ 
      id : id 
     }), 
     cache: false, 
     success: function(data) { 
      $('a').removeClass("selected"); 
      $('#link_'+id).addClass("selected"); 
      alert(data); 

     }, 
    }); 
} 

तो एक अलग तरह के लिए एक अलग ग्राफ लोड करने के लिए क्या मैं यहाँ प्राप्त करने के लिए कोशिश कर रहा हूँ है खेल चार्ट आदि, इसलिए कहते हैं कि मैं राजनीति चार्ट देता है, मैं डॉन ': यह मेरा समारोह कैसा दिखाई देता है है पता नहीं कहाँ हालांकि गूगल एपीआई कोड डाल करने के लिए है, क्योंकि ऐसा लगता है कि यह सिर्फ काम नहीं कर रहा है ...

संपादित करें:

$.ajax({ 
     type: "POST", 
     dataType: "html", 
     data: {id: id}, 
     url: '<?=URL?>' + 'ajaxlibrary/get-charts', 
     success: function(datas) { 
      console.log(datas); 
      var data = google.visualization.arrayToDataTable([ 
        datas 
      ]); 

      var options = { 
       title: 'My Daily Activities' 
      }; 

      var chart = new google.visualization.PieChart(document.getElementById('chart_div')); 
      chart.draw(data, options); 
     } 
    }); 

लेकिन मैं भेजने के साथ समस्याएं आ रही हैं: मैं इस तरह समारोह संपादित मेरी AJAX PHP फ़ाइल से यह डेटा स्ट्रीम:

echo '[\'Task\', \'Hours per Day\'], 
      [\'Work\',  10], 
      [\'shit\',  50], 
      [\'loop\',  25], 
      [\'poop\',  15]'; 

प्रतिक्रिया मान्य 2 डी सरणी नहीं है। यदि मैं मूल्यों को जावास्क्रिप्ट फ़ाइल में मैन्युअल रूप से डालता हूं, तो यह काम करता है, इसलिए समस्या कहीं प्रतिक्रिया में है।

उत्तर

13

आप नीचे दिए गए कोड का उपयोग कर अजाक्स कॉल के साथ Google चार्ट लोड कर सकते हैं।

$.ajax({ 
    url: 'https://www.google.com/jsapi?callback', 
    cache: true, 
    dataType: 'script', 
    success: function(){ 
    google.load('visualization', '1', {packages:['corechart'], 'callback' : function() 
     { 

      $.ajax({ 
       type: "POST", 
       dataType: "json", 
       data: {id: YOURIDHERE}, 
       url: '<?=URL?>' + 'ajaxlibrary/get-charts', 
       success: function(jsondata) { 
        var data = google.visualization.arrayToDataTable(jsondata); 

        var options = {title: 'My Daily Activities'}; 

        var chart = new google.visualization.PieChart(document.getElementById('chart_div')); 
        chart.draw(data, options); 
       } 
      });  
     ]); 

     } 
    }); 
    return true; 
    } 
}); 

आप Google API का उपयोग करके केवल कोरचार्ट के बजाय किसी भी अन्य चार्ट प्रकार लोड कर सकते हैं।

+0

अद्भुत, जो काम किया। एक बात हालांकि, मैं अपने मूल AJAX में आईडी को पास करना चाहता हूं, इसलिए मैं PHP फ़ाइल से विशिष्ट मान लोड कर सकता हूं। शायद एक और AJAX कॉल जोड़ें क्योंकि यह डेटा लोड करता है? – InsaneSVK

+0

टिप्पणी कोड // अपने चार्ट निर्माण सामग्री को यहां देखें आप अपनी सामग्री यहां जोड़ सकते हैं .. यदि चार्टों को आपकी सामग्री की कोई आवश्यकता नहीं है तो आप इसे इस कॉल के बाहर भी कर सकते हैं। \ – Nagarjun

+0

मुझे पता है कि आपका क्या मतलब है, बस मेरी संपादित पहली पोस्ट देखें और मुझे बताएं कि कृपया क्या करना है। – InsaneSVK