uploadExcel.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  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. $(document).ready(function() {
  91. const queryString = window.location.search;
  92. const urlParams = new URLSearchParams(queryString);
  93. var file = '<?= $file ?>';
  94. var categoryId = '<?= $category_id ?>';
  95. var projectId = '<?= $project_id ?>';
  96. var projectName = '<?= $project_name ?>';
  97. getExcel(file, projectId,projectName,categoryId);
  98. });
  99. function getExcel(file, projectId,projectName,categoryId) {
  100. $.ajax({
  101. url: "./getExcel.php",
  102. data: {
  103. file: file,
  104. projectId: projectId,
  105. categoryId: categoryId,
  106. },
  107. async: false,
  108. contentType: "application/json",
  109. dataType: "json",
  110. type: "GET",
  111. })
  112. .success(function(response) {
  113. var table = response.table;
  114. var info = response.info;
  115. let i = 0;
  116. for (var tab in table) {
  117. if (i == 0) {
  118. active = 'class="active"';
  119. } else {
  120. active = '';
  121. }
  122. $('#tabs').append(`<li ${active}><a data-toggle="tab" href="#page${i}">${tab}</a></li>`);
  123. $("#tab-content").append(`<div id="page${i}" class="tab-pane fade"></div>`);
  124. appendTable(table[tab], `#page${i}`);
  125. i++;
  126. }
  127. $(`#page${0}`).append("<form id='form' method='post' action='./insertExcel.php'></form>");
  128. appendTable(info, "#form");
  129. $("#form").append(`<div class='center'><input class='submit' type='submit' value='開始匯入'><button type='button' class='submit' onClick=\"location.href='./upload.html'\" >重新選擇檔案</button></div>`);
  130. $("#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}'>`);
  131. })
  132. .error(function(error) {
  133. console.log(error);
  134. })
  135. .complete(function() {
  136. $('#page0').addClass('in active')
  137. });
  138. }
  139. function appendTable(data, id) {
  140. let i = 0;
  141. table = "<table class='excel'>";
  142. for (var tab in data) {
  143. table += "<tr>";
  144. for (j = 0; j < data[tab].length; j++) {
  145. if (i == 0)
  146. table += `<th style="width:33%;">${data[tab][j]}</th>`
  147. else
  148. table += `<td>${data[tab][j]}</td>`
  149. }
  150. i++;
  151. table += "</tr>";
  152. }
  153. table += "</table>";
  154. $(id).append(table);
  155. }
  156. </script>
  157. </body>
  158. </html>