uploadExcel-old.php 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <?php
  2. if(!isset($_FILES['excel']['error'])){
  3. header("Location: /DataBase/upload.html");
  4. }
  5. if (0 < $_FILES['excel']['error']) {
  6. echo 'Error: ' . $_FILES['excel']['error'] . '<br>';
  7. } else {
  8. $filepath = 'uploads/' . $_FILES['excel']['name'];
  9. move_uploaded_file($_FILES['excel']['tmp_name'], $filepath);
  10. $project_id = $_POST['projectId'];
  11. $project_name = $_POST['projectName'];
  12. $category_id = $_POST['category'];
  13. $file = $_FILES['excel']['name'];
  14. } ?>
  15. <!DOCTYPE html>
  16. <html>
  17. <head>
  18. <title>設計群匯入工具</title>
  19. <meta charset="utf-8">
  20. <link rel="shortcut icon" href="/Database/assets/images/favicon.ico" />
  21. <meta name="viewport" content="width=device-width, initial-scale=1">
  22. <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
  23. <script src="/DataBase/assets/vendor/jquery/jquery.js"></script>
  24. <script src="/DataBase/script/js/bootstrap.js"></script>
  25. <link rel="stylesheet" href="/DataBase/assets/vendor/font-awesome/css/font-awesome.css" />
  26. <style>
  27. .excel {
  28. font-family: Arial, Helvetica, sans-serif;
  29. border-collapse: collapse;
  30. width: 100%;
  31. }
  32. .nav-tabs>li.active>a,
  33. .nav-tabs>li.active>a:focus,
  34. .nav-tabs>li.active>a:hover {
  35. border: 1px solid #000;
  36. }
  37. .excel td,
  38. .excel th {
  39. border: 1px solid #aaa;
  40. padding: 8px;
  41. }
  42. .excel tr:nth-child(even) {
  43. background-color: #f2f2f2;
  44. }
  45. .excel tr:hover {
  46. background-color: #ddd;
  47. }
  48. .excel th {
  49. padding-top: 12px;
  50. padding-bottom: 12px;
  51. text-align: left;
  52. background-color: #004B7C;
  53. color: white;
  54. }
  55. .submit {
  56. display: inline-block;
  57. margin-left: auto;
  58. margin-right: auto;
  59. width: 20%;
  60. background-color: #004B7C;
  61. border: none;
  62. color: white;
  63. padding: 15px 32px;
  64. text-align: center;
  65. text-decoration: none;
  66. font-size: 16px;
  67. margin: 10px;
  68. }
  69. .delete {
  70. background-color: red;
  71. border: none;
  72. color: white;
  73. padding: 5px 32px;
  74. text-align: center;
  75. text-decoration: none;
  76. display: inline-block;
  77. font-size: 16px;
  78. }
  79. .center {
  80. text-align: center;
  81. }
  82. </style>
  83. </head>
  84. <body>
  85. <ul id="tabs" class="nav nav-tabs">
  86. </ul>
  87. <div id="tab-content" class="tab-content">
  88. </div>
  89. <script type="text/javascript">
  90. // TODO: 1.頁籤依據選擇變色 2.偵測null欄位資料
  91. $(document).ready(function() {
  92. const queryString = window.location.search;
  93. const urlParams = new URLSearchParams(queryString);
  94. var file = '<?= $file ?>';
  95. var categoryId = '<?= $category_id ?>';
  96. var projectId = '<?= $project_id ?>';
  97. var projectName = '<?= $project_name ?>';
  98. getExcel(file, projectId,projectName,categoryId);
  99. });
  100. function getExcel(file, projectId,projectName,categoryId) {
  101. $.ajax({
  102. url: "./getExcel.php",
  103. data: {
  104. file: file,
  105. projectId: projectId,
  106. categoryId: categoryId,
  107. },
  108. async: false,
  109. contentType: "application/json",
  110. dataType: "json",
  111. type: "GET",
  112. })
  113. .success(function(response) {
  114. var table = response.table;
  115. var info = response.info;
  116. let i = 0;
  117. for (var tab in table) {
  118. if (i == 0) {
  119. active = 'class="active"';
  120. } else {
  121. active = '';
  122. }
  123. $('#tabs').append(`<li ${active}><a data-toggle="tab" href="#page${i}">${tab}</a></li>`);
  124. $("#tab-content").append(`<div id="page${i}" class="tab-pane fade"></div>`);
  125. appendTable(table[tab], `#page${i}`);
  126. i++;
  127. }
  128. $(`#page${0}`).append("<form id='form' method='post' action='./insertExcel.php'></form>");
  129. appendTable(info, "#form");
  130. // TODO: add confirm message
  131. $("#form").append(`<div class='center'><input class='submit' type='submit' value='開始匯入'><button type='button' class='submit' onClick=\"location.href='/DataBase/upload.html'\" >重新選擇檔案</button></div>`);
  132. $("#form").append(`<input id='projectId' name='projectId' type='hidden' value='${projectId}'><input id='projectName' name='projectName' type='hidden' value='${projectName}'><input id='file' name='file' type='hidden' value='${file}'><input id='categoryId' name='categoryId' style='display:none;' value='${categoryId}'>`);
  133. })
  134. .error(function(error) {
  135. console.log(error);
  136. })
  137. .complete(function() {
  138. $('#page0').addClass('in active')
  139. });
  140. }
  141. function appendTable(data, id) {
  142. let i = 0;
  143. table = "<table class='excel'>";
  144. for (var tab in data) {
  145. table += "<tr>";
  146. for (j = 0; j < data[tab].length; j++) {
  147. if (i == 0)
  148. table += `<th style="width:33%;">${data[tab][j]}</th>`
  149. else
  150. table += `<td>${data[tab][j]}</td>`
  151. }
  152. i++;
  153. table += "</tr>";
  154. }
  155. table += "</table>";
  156. $(id).append(table);
  157. }
  158. </script>
  159. </body>
  160. </html>