javascript
  • php
  • google-visualization
  • 2016-05-15 32 views 1 likes 
    1

    我正在使用while循环创建图表以获取来自mysql查询的变量。Google可视化PHP和Javascript

    我正在尝试将HTML添加到第一列,并导致以下问题:[对象对象]不符合控制或可视化规范。

    因此,表格显示正确,但我的类别过滤器现在抛出此错误。有人可以看看我的代码,看看我错过了什么吗?谢谢!

    这里是我的代码:

    echo "<script type='text/javascript' src='https://www.google.com/jsapi'></script> 
    
        <body> 
        <br><br> 
    <div id='dashboard'> 
        <div style='float:left;' id='control1'></div> 
        <div style='float:left;' id='control2'></div> 
        <div style='float:left;' id='control4'></div> 
        <br><br> 
        <div style='float:left;' id='control3'></div> 
        <div style='float:left;' id='control5'></div> 
        <br><br> 
        <div id='table'></div> 
    </div> 
    </body>"; 
    
    
    
    echo "<script> 
    
    google.load('visualization', '1.0', {packages:['corechart', 'table', 'controls']}); 
    google.setOnLoadCallback(drawChart); 
    
        function drawChart() 
    { 
        var data = new google.visualization.DataTable(); 
        data.addColumn('string', 'Save'); 
        data.addColumn('string', 'School'); 
        data.addColumn('string', 'State'); 
        data.addColumn('string', 'Scholarship Type'); 
        data.addColumn('string', 'Scholarship Amount'); 
        data.addColumn('string', 'For International');"; 
    
        while ($schools = mysql_fetch_row($schoolsearch)) { 
    $schoolnames = str_replace(array('.', ',', "'"), '' , $schools[2]); 
    
    echo "data.addRows([ 
    ['<input type=\"checkbox\">', '$schoolnames', '$schools[1]', '$schools[6]', '$schools[5]', '$schools[7]'], 
    ]);"; 
    } 
    
    echo "var name_filter = new google.visualization.ControlWrapper({ 
        'controlType': 'CategoryFilter', 
        'containerId': 'control1', 
        'options': { 
         'filterColumnLabel': 'School', 
        } 
    }); 
    
    var state_filter = new google.visualization.ControlWrapper({ 
        'controlType': 'CategoryFilter', 
        'containerId': 'control2', 
        'options': { 
         'filterColumnLabel': 'State', 
        } 
    }); 
    
    var scholarshiptype_filter = new google.visualization.ControlWrapper({ 
        'controlType': 'CategoryFilter', 
        'containerId': 'control3', 
        'options': { 
         'filterColumnLabel': 'Scholarship Type', 
        } 
    }); 
    
    var scholarshipamount_filter = new google.visualization.ControlWrapper({ 
        'controlType': 'CategoryFilter', 
        'containerId': 'control4', 
        'options': { 
         'filterColumnLabel': 'Scholarship Amount', 
        } 
    }); 
    
    var international_filter = new google.visualization.ControlWrapper({ 
        'controlType': 'CategoryFilter', 
        'containerId': 'control5', 
        'options': { 
         'filterColumnLabel': 'For International', 
        } 
    }); 
    
    
    var table = new google.visualization.ChartWrapper({ 
        'chartType': 'Table', 
        'containerId': 'table', 
    }); 
    
    var table = new google.visualization.Table(document.getElementById('table')); 
    table.draw(data, { 
    allowHtml:true, 
    }); 
    
    var dashboard = new google.visualization.Dashboard(document.getElementById('dashboard')); 
    dashboard.bind([name_filter, state_filter, scholarshiptype_filter, scholarshipamount_filter, international_filter], [table]); 
    dashboard.draw(data); 
    } 
    
    </script> 
    

    回答

    0

    我能够通过将allowHtml在选择这样解决这个问题:

    var table = new google.visualization.ChartWrapper({ 
        'chartType': 'Table', 
        'containerId': 'table', 
         options: { 
    allowHtml: true 
    }, 
    }); 
    
    0

    另一种选择,它可以更好地工作,这取决于是否您希望筛选器在html或其代表的值上工作...

    DataTable中的每个单元格都具有值(v :)和格式化值(f :)

    您可以使用格式化的值在HTML

    ,你必须......

    echo "data.addRows([ 
        ['<input type=\"checkbox\">', '$schoolnames', '$schools[1]', '$schools[6]', '$schools[5]', '$schools[7]'], 
    ]);"; 
    

    尝试...

    echo "data.addRows([ 
        [{v: '', f: '<input type=\"checkbox\">'}, '$schoolnames', '$schools[1]', '$schools[6]', '$schools[5]', '$schools[7]'], 
    ]);"; 
    
    相关问题