2016-05-25 2 views
1

Ich habe 3 Tabellen auf einer Seite, die ohne Probleme geladen wurden und jetzt sind sie verschwunden und egal, was ich lösche, sie werden nicht wieder auf der Seite erscheinen.Google Visualisierungstabellen werden nicht mehr geladen

Jede Tabelle wird mit einer Abfrage aufgerufen. Die Idee ist, dass jede Tabelle ein Dashboard mit mehreren Steuerelementen sein wird, die die Daten verwenden, die ich abgefragt habe. Die Tabellen 2 und 3 werden schließlich so aufgebaut, dass sie wie Tabelle 1 aussehen. Vielleicht habe ich zu viel zu tun? Ich bin sehr neu, also bin ich mir sicher, dass es einen besseren Weg gibt, dies zu erreichen. Ich versuchte immer noch zu verstehen, was ich tun könnte, damit es nicht mehr funktionierte. Jede Hilfe oder Beratung wird geschätzt.

google.load("visualization", '1', {packages:['table','controls'], callback: drawTable}); 
google.setOnLoadCallback(drawTable); 

    function drawTable() { 
    var queryNew = new google.visualization.Query(
      'https://docs.google.com/spreadsheets/d/1bSBHImAWvtB5lI7-tU7HKYfDBXi0Rzoj3bNXhhXJ63U/gviz/tq?gid=0'); 
    queryNew.setQuery('where D = "New Hire"'); 
    queryNew.send(handleQueryResponse1); 

    var queryTerms = new google.visualization.Query(
      'https://docs.google.com/spreadsheets/d/1bSBHImAWvtB5lI7-tU7HKYfDBXi0Rzoj3bNXhhXJ63U/gviz/tq?gid=0'); 
    queryTerms.setQuery('where D = "Termination"'); 
    queryTerms.send(handleQueryResponse2); 

    var queryTrans = new google.visualization.Query(
      'https://docs.google.com/spreadsheets/d/1bSBHImAWvtB5lI7-tU7HKYfDBXi0Rzoj3bNXhhXJ63U/gviz/tq?gid=1145683023'); 
    queryTrans.send(handleQueryResponse3); 

    } 

// TABELLE 1

function handleQueryResponse1(response) { 

    var data = response.getDataTable(); 

    var cssClassNames = { 
     'headerRow': '', 
     'tableRow': '', 
     'oddTableRow': '', 
     'selectedTableRow': '', 
     'hoverTableRow': '', 
     'headerCell': '', 
     'tableCell': '', 
     'rowNumberCell': ''}; 

    var dashboard1 = new google.visualization.Dashboard(
      document.getElementById('dashboardnew_div')); 

    // Table Views 
    var table1 = new google.visualization.ChartWrapper({ 
     chartType: 'Table', 
     containerId: 'newhire_div', 
     options: { 
      showRowNumber: false, 
      allowHtml: true, 
      cssClassNames: cssClassNames, 
      page: 'enable', 
      pageSize: 25, 
      width: '100%' 
     }, 
     view: { 
     columns: [12, 1, 4, 3, 2, 5, 6, 7, 8, 9, 10, 11, 13] 
     } 
     }); 

     var table2 = new google.visualization.ChartWrapper({ 
     chartType: 'Table', 
     containerId: 'newhire_div', 
     options: { 
      showRowNumber: false, 
      allowHtml: true, 
      cssClassNames: cssClassNames, 
      page: 'enable', 
      pageSize: 25, 
      width: '100%' 
     }, 
     view: { 
     columns: [12, 1, 4, 3, 2, 5, 6, 7, 8, 9, 10, 11, 13, 14] 
     } 
     }); 


     // Formatters 
     var salary = new google.visualization.NumberFormat({prefix: '$'}); 
     salary.format(data, 10); // Apply formatter to second column 

     // var className = 'google-visualization-table-table'; 
     // $('.'+className).removeClass(className); 


     // Controls 
     var stringFilter1 = new google.visualization.ControlWrapper({ 
     controlType: 'StringFilter', 
     containerId: 'stringnew_filter_div', 
     options: { 
      filterColumnIndex: 4, 
      matchType: 'any', 
      ui: { 
       label: 'Search by Employee', 
       labelStacking: 'vertical', 
       cssClass: 'searchClass' 
      } 
     } 
     }); 

     var locationFilter1 = new google.visualization.ControlWrapper({ 
     controlType: 'CategoryFilter', 
     containerId: 'locationnew_filter_div', 
     options: { 
      filterColumnIndex: 1, 
      ui: { 
       label: 'Filter by Location', 
       labelStacking: 'vertical', 
       cssClass: 'locationClass' 
      } 
     } 
     }); 


     // Buttons 
     var refresh = document.getElementById('b1'); 
     refresh.onclick = function() { 
      drawTable(); 
     } 

     var hide = document.getElementById("b2"); 
     hide.onclick = function() { 
     dashboard1.bind([stringFilter1, locationFilter1], [table2]) 
     dashboard1.draw(data); 
     } 

     // Draw Dashboard 
     dashboard1.bind([stringFilter1, locationFilter1], [table1]) 
     dashboard1.draw(data); 
} 

// TABELLE 2

function handleQueryResponse2(response) { 

    var data = response.getDataTable(); 
    var table4 = new google.visualization.Table(document.getElementById('benefits_div')); 
     table4.draw(data); 
    } 

// TABELLE 3

function handleQueryResponse3(response) { 

    var data = response.getDataTable(); 
    var table4 = new google.visualization.Table(document.getElementById('transfers_div')); 
     table4.draw(data); 
    } 
+0

Danke für Ihre Reaktion! Ja, ich habe sie absichtlich gleich gemacht, weil die Tabelle 2 durch einen Knopf gesteuert wird, wo sie newhire_divs Daten ersetzt onclick, ich habe sie anders gemacht, um zu sehen, ob das das Problem war, aber die Tabellen werden immer noch nicht angezeigt, obwohl sie es waren Vor. – Niya

+0

Ich sehe dies in der Konsole: "Uncaught SyntaxError: Unerwartete Kennung" – Niya

+0

Dies sind die Testdaten, die ich verwende https://docs.google.com/a/newvisions.org/spreadsheets/d/1bSBHImAWvtB5lI7-tU7HKYfDBXi0Rzoj3bNXhhXJ63U/edit? usp = sharing – Niya

Antwort

0

vielleicht versuchen loader.js vs. jsapi mit dem laden Bibliothek, scheint w zu sein orking hier ...

google.charts.load('current', { 
 
    callback: drawTable, 
 
    packages: ['controls', 'table'] 
 
}); 
 

 
function drawTable() { 
 
    var queryNew = new google.visualization.Query(
 
    'https://docs.google.com/spreadsheets/d/1bSBHImAWvtB5lI7-tU7HKYfDBXi0Rzoj3bNXhhXJ63U/gviz/tq?gid=0'); 
 
    queryNew.setQuery('where D = "New Hire"'); 
 
    queryNew.send(handleQueryResponse1); 
 

 
    var queryTerms = new google.visualization.Query(
 
    'https://docs.google.com/spreadsheets/d/1bSBHImAWvtB5lI7-tU7HKYfDBXi0Rzoj3bNXhhXJ63U/gviz/tq?gid=0'); 
 
    queryTerms.setQuery('where D = "Termination"'); 
 
    queryTerms.send(handleQueryResponse2); 
 

 
    var queryTrans = new google.visualization.Query(
 
    'https://docs.google.com/spreadsheets/d/1bSBHImAWvtB5lI7-tU7HKYfDBXi0Rzoj3bNXhhXJ63U/gviz/tq?gid=1145683023'); 
 
    queryTrans.send(handleQueryResponse3); 
 
} 
 

 
function handleQueryResponse1(response) { 
 
    var data = response.getDataTable(); 
 

 
    var cssClassNames = { 
 
    'headerRow': '', 
 
    'tableRow': '', 
 
    'oddTableRow': '', 
 
    'selectedTableRow': '', 
 
    'hoverTableRow': '', 
 
    'headerCell': '', 
 
    'tableCell': '', 
 
    'rowNumberCell': '' 
 
    }; 
 

 
    var dashboard1 = new google.visualization.Dashboard(
 
    document.getElementById('dashboardnew_div') 
 
); 
 

 
    // Table Views 
 
    var table1 = new google.visualization.ChartWrapper({ 
 
    chartType: 'Table', 
 
    containerId: 'newhire_div', 
 
    options: { 
 
     showRowNumber: false, 
 
     allowHtml: true, 
 
     cssClassNames: cssClassNames, 
 
     page: 'enable', 
 
     pageSize: 25, 
 
     width: '100%' 
 
    }, 
 
    view: { 
 
     columns: [12, 1, 4, 3, 2, 5, 6, 7, 8, 9, 10, 11, 13] 
 
    } 
 
    }); 
 

 
    var table2 = new google.visualization.ChartWrapper({ 
 
    chartType: 'Table', 
 
    containerId: 'newhire_div', 
 
    options: { 
 
     showRowNumber: false, 
 
     allowHtml: true, 
 
     cssClassNames: cssClassNames, 
 
     page: 'enable', 
 
     pageSize: 25, 
 
     width: '100%' 
 
    }, 
 
    view: { 
 
     columns: [12, 1, 4, 3, 2, 5, 6, 7, 8, 9, 10, 11, 13, 14] 
 
    } 
 
    }); 
 

 
    // Formatters 
 
    var salary = new google.visualization.NumberFormat({prefix: '$'}); 
 
    salary.format(data, 10); // Apply formatter to second column 
 

 
    // Controls 
 
    var stringFilter1 = new google.visualization.ControlWrapper({ 
 
    controlType: 'StringFilter', 
 
    containerId: 'stringnew_filter_div', 
 
    options: { 
 
     filterColumnIndex: 4, 
 
     matchType: 'any', 
 
     ui: { 
 
     label: 'Search by Employee', 
 
     labelStacking: 'vertical', 
 
     cssClass: 'searchClass' 
 
     } 
 
    } 
 
    }); 
 

 
    var locationFilter1 = new google.visualization.ControlWrapper({ 
 
    controlType: 'CategoryFilter', 
 
    containerId: 'locationnew_filter_div', 
 
    options: { 
 
     filterColumnIndex: 1, 
 
     ui: { 
 
     label: 'Filter by Location', 
 
     labelStacking: 'vertical', 
 
     cssClass: 'locationClass' 
 
     } 
 
    } 
 
    }); 
 

 

 
    // Buttons 
 
    var refresh = document.getElementById('b1'); 
 
    refresh.onclick = function() { 
 
    drawTable(); 
 
    } 
 

 
    var hide = document.getElementById("b2"); 
 
    hide.onclick = function() { 
 
    dashboard1.bind([stringFilter1, locationFilter1], [table2]) 
 
    dashboard1.draw(data); 
 
    } 
 

 
    // Draw Dashboard 
 
    dashboard1.bind([stringFilter1, locationFilter1], [table1]) 
 
    dashboard1.draw(data); 
 
} 
 

 
// TABLE 2 
 
function handleQueryResponse2(response) { 
 
    var data = response.getDataTable(); 
 
    var table4 = new google.visualization.Table(document.getElementById('benefits_div')); 
 
    table4.draw(data); 
 
} 
 

 
// TABLE 3 
 
function handleQueryResponse3(response) { 
 
    var data = response.getDataTable(); 
 
    var table4 = new google.visualization.Table(document.getElementById('transfers_div')); 
 
    table4.draw(data); 
 
}
<script src="https://www.gstatic.com/charts/loader.js"></script> 
 
<div id="dashboardnew_div"> 
 
    <div id="newhire_div"></div> 
 
    <div id="stringnew_filter_div"></div> 
 
    <div id="locationnew_filter_div"></div> 
 
    <input type="button" id="b1" value="Refresh" /> 
 
    <input type="button" id="b2" value="Hide" /> 
 
    <div id="benefits_div"></div> 
 
    <div id="transfers_div"></div> 
 
</div>

+0

Danke! Leider hatte ich bereits die loader.js in meinem Indexkopf :-( – Niya

+0

Ich ging zurück zu den Grundlagen, um zu sehen, ob ich das Problem finden konnte. Sobald ich den Code vereinfachte, begannen die Tabellen wieder zu laden. Ich bin nicht sicher, wo es geht schief, aber ich habe eine Kombination aus Bootstrap-Tabs und Google-Steuerelementen, um Tabellen zu filtern und zu durchsuchen, also gehe ich davon aus, dass es einer davon ist – Niya