{"id":829,"date":"2017-11-20T23:49:05","date_gmt":"2017-11-20T23:49:05","guid":{"rendered":"http:\/\/www.honobono-life.info\/wpeng\/?p=829"},"modified":"2017-11-21T01:32:58","modified_gmt":"2017-11-21T01:32:58","slug":"tables-row-clickdisplay-line-chart","status":"publish","type":"post","link":"http:\/\/www.honobono-life.info\/wpeng\/tables-row-clickdisplay-line-chart\/","title":{"rendered":"Google Chart by AngularJS table&#8217;s row click,display line chart"},"content":{"rendered":"<ul>\r\n<li>AngularJS : 1.6.5<\/li>\r\n<li>Bootstrap : 3.x<\/li>\r\n<\/ul>\r\n<!--more-->\r\n<div role=\"tabpanel\">\r\n  <ul class=\"nav nav-tabs\">\r\n    <li class=\"active\"><a href=\"#demo1\" data-toggle=\"tab\">demo<\/a><\/li>\r\n    <li><a href=\"#html1\" data-toggle=\"tab\">markup<\/a><\/li>\r\n    <li><a href=\"#script1\" data-toggle=\"tab\">script<\/a><\/li>\r\n    <li><a href=\"#template1\" data-toggle=\"tab\">php<\/a><\/li>\r\n  <\/ul>\r\n  <div class=\"tab-content\">\r\n    <div class=\"tab-pane active\" id=\"demo1\">\r\n\r\n<a href=\"http:\/\/www.honobono-life.info\/wpeng\/wp-content\/themes\/ang\/assets\/templates\/gglchart-ng-click.html\" rel=\"noopener\" target=\"_blank\">Demo<\/a>\r\n\r\n    <\/div>\r\n    <div class=\"tab-pane\" id=\"html1\">\r\n<pre>\r\n  &lt;head>\r\n\/\/\r\n    &lt;script type=\"text\/javascript\" src=\"https:\/\/www.gstatic.com\/charts\/loader.js\">&lt;\/script>\r\n  &lt;\/head>\r\n  &lt;body>\r\n    &lt;div ng-controller=\"MyCtrl\">\r\n      &lt;div id=\"chart_div1\">&lt;\/div>\r\n      &lt;div id=\"chart_div2\">&lt;\/div>\r\n    &lt;\/div>\r\n    &lt;script type='text\/javascript' src='js\/angular.min.js'>&lt;\/script>\r\n    &lt;script type=\"text\/javascript\" src=\"js\/app.js\">&lt;\/script>\r\n  &lt;\/body>\r\n<\/pre>\r\n    <\/div>\r\n\r\n    <div class=\"tab-pane\" id=\"script1\">\r\n<pre>\r\ngoogle.charts.load('current', {packages: ['table','corechart']});\r\n\r\ngoogle.charts.setOnLoadCallback(function() {\r\n  angular.bootstrap(document.body, ['myApp']);\r\n});\r\n\r\nvar myApp = angular.module('myApp', []);\r\n\r\nmyApp.controller('MyCtrl', function($scope,$http) {\r\n  $scope.grphdisplay = function (site_name) {\r\n    var url = '..\/pdo-webana2.php?site_name=' + site_name ;\r\n    $http.get(url).then(function(response) {\r\n      var data1 = new google.visualization.DataTable();\r\n      data1.addColumn('string', 'year\/mon');\r\n      data1.addColumn('number', 'page_view');\r\n      for(i = 0 ; i < response.data.length;i++) {\r\n        var year_mon = response.data[i][\"year_mon\"].substr(2,5);\r\n        data1.addRow([year_mon, parseInt(response.data[i][\"page_view\"])]);\r\n      };\r\n      var title = site_name + \"\\'s page_view\";\r\n      var options = {\r\n        'title': title,\r\n        'height': 300\r\n      };\r\n      var chart = new google.visualization.LineChart(document.getElementById('chart_div2'));\r\n      chart.draw(data1, options);\r\n    });\r\n  };\r\n  $scope.getDataAsync = function () {\r\n    $http.get('..\/pdo-webana1.php').then(function(response) {\r\n      var data1 = new google.visualization.DataTable();\r\n      data1.addColumn('string', 'site_name');\r\n      data1.addColumn('number', 'page_view');\r\n      for(i = 0 ; i < response.data.length;i++) {\r\n        data1.addRow([\r\n          response.data[i][\"site_name\"],\r\n          parseInt(response.data[i][\"page_view\"])\r\n        ]);\r\n      };\r\n      var options = {\r\n        'title': 'page_view',\r\n        'height':300\r\n      };\r\n      var chart = new google.visualization.Table(document.getElementById('chart_div1'));\r\n      var formatter = new google.visualization.NumberFormat(\r\n        {fractionDigits: 0}\r\n      );\r\n      formatter.format(data1, 1);\r\n      chart.draw(data1, options);\r\n      google.visualization.events.addListener(chart, 'select', function() {\r\n        var row = chart.getSelection()[0].row;\r\n        $scope.grphdisplay(data1.getValue(row, 0))\r\n      });\r\n    });\r\n  };\r\n  $scope.getDataAsync();\r\n});\r\n<\/pre>\r\n    <\/div><!-- \/.tab-pane -->\r\n\r\n    <div class=\"tab-pane\" id=\"template1\">\r\n<pre>\r\n(pdo-webana1.php)\r\nrequire(\"db_info.php\");\r\n\r\n$dsn = 'mysql:host=localhost;dbname='.$database.';charset=utf8';\r\n\r\ntry {\r\n  $dbh = new PDO($dsn, $username, $password,\r\n    array(\r\n      PDO::ATTR_EMULATE_PREPARES =>false,\r\n      PDO::MYSQL_ATTR_INIT_COMMAND => \"SET NAMES 'utf8'\"\r\n    )\r\n  );\r\n} catch (PDOException $e) {\r\n  exit('\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u5931\u6557\u3002'.$e->getMessage());\r\n}\r\n\r\ndate_default_timezone_set('Asia\/Tokyo');\r\n$result = array();\r\n\r\n$st = $dbh->prepare('select year_mon,site_name,sum(page_view) as page_view from wp_sample where group by site_name');\r\n\r\n$st->execute();\r\n$result = $st->fetchAll(PDO::FETCH_ASSOC);\r\n\r\necho json_encode($result);\r\n\r\n\r\n(pdo-webana2.php)\r\nrequire(\"db_info.php\");\r\n\r\n$site_name = filter_input(INPUT_GET, 'site_name');\r\n$dsn = 'mysql:host=localhost;dbname='.$database.';charset=utf8';\r\n\r\ntry {\r\n  $dbh = new PDO($dsn, $username, $password,\r\n    array(\r\n      PDO::ATTR_EMULATE_PREPARES =>false,\r\n      PDO::MYSQL_ATTR_INIT_COMMAND => \"SET NAMES 'utf8'\"\r\n    )\r\n  );\r\n} catch (PDOException $e) {\r\n  exit('\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u5931\u6557\u3002'.$e->getMessage());\r\n}\r\n\r\ndate_default_timezone_set('Asia\/Tokyo');\r\n$result = array();\r\n\r\n$st = $dbh->prepare('select year_mon, sum(page_view) as page_view from wp_sample where site_name = :site_name group by year_mon order by year_mon');\r\n\r\n$st->bindValue(':site_name', $site_name , PDO::PARAM_STR);\r\n$st->execute();\r\n$result = $st->fetchAll(PDO::FETCH_ASSOC);\r\n\r\necho json_encode($result);\r\n<\/pre>\r\n    <\/div><!-- \/.tab-pane -->\r\n\r\n  <\/div><!-- \/.tab-content -->\r\n<\/div><!-- \/.tabpanel -->\r\n","protected":false},"excerpt":{"rendered":"<p>AngularJS : 1.6.5 Bootstrap : 3.x<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[36],"tags":[35,8,75,95,76],"amp_enabled":true,"_links":{"self":[{"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/posts\/829"}],"collection":[{"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/comments?post=829"}],"version-history":[{"count":11,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/posts\/829\/revisions"}],"predecessor-version":[{"id":1595,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/posts\/829\/revisions\/1595"}],"wp:attachment":[{"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/media?parent=829"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/categories?post=829"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/tags?post=829"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}