国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

157 lines
6.7KB

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=<?php echo $cfg_soft_lang; ?>">
  5. <title>数据批量替换</title>
  6. <script language="javascript" src="../static/web/js/jquery.min.js"></script>
  7. <script language="javascript" src="../static/web/js/bootstrap.bundle.min.js"></script>
  8. <script language="javascript" src="js/main.js"></script>
  9. <script language='javascript' src='../static/web/js/webajax.js'></script>
  10. <script language='javascript'>
  11. function ShowFields() {
  12. var exptable = $DE('exptable').options[$DE('exptable').selectedIndex].value;
  13. var queryUrl = "sys_data_replace.php?exptable=" + exptable + "&action=getfields";
  14. fetch(queryUrl).then(resp=>{
  15. if (resp.ok) {
  16. return resp.text()
  17. }
  18. throw new Error('x');
  19. }).then((d)=>{
  20. $DE('fields').innerHTML = d;
  21. }).catch((error) => {
  22. $DE('fields').innerHTML = errMsg;
  23. });
  24. }
  25. function CheckSubmit() {
  26. if ($DE('rpfield').value == "") {
  27. ShowMsg("您选择的操作为手工指定字段,但您并没指定");
  28. return false;
  29. }
  30. if ($DE('rpstring').value == "") {
  31. ShowMsg("您没指定要替换的字符串");
  32. return false;
  33. }
  34. return true;
  35. }
  36. function pf(v) {
  37. $DE('rpfield').value = v;
  38. }
  39. </script>
  40. <link rel="stylesheet" href="../static/web/css/bootstrap.min.css">
  41. <link rel="stylesheet" href="../static/web/font/css/font-awesome.min.css">
  42. <link rel="stylesheet" href="../static/web/css/admin.css">
  43. </head>
  44. <body>
  45. <table width="98%" cellpadding="1" cellspacing="1" align="center" class="table maintable mt-3 mb-3">
  46. <form action="sys_data_replace.php" name="form1" method="post" target="stafrm" onSubmit="return CheckSubmit()">
  47. <input type='hidden' name='action' value='apply'>
  48. <tr>
  49. <td height="26" background="../static/web/img/tbg.gif" style="padding-left:10px">数据库内容替换</td>
  50. </tr>
  51. <tr>
  52. <td>
  53. <table width="100%" cellpadding="2" cellspacing="2" class="table table-borderless">
  54. <tr>
  55. <td colspan="2">
  56. <div class="alert alert-info mb-0">程序用于批量替换数据库中某字段的内容,此操作极为危险,请小心使用</div>
  57. </td>
  58. </tr>
  59. <tr id='datasel'>
  60. <td width="15%" height="60">&nbsp;选择数据表与字段:</td>
  61. <td>
  62. <table width="98%" cellspacing="0" cellpadding="0">
  63. <tr>
  64. <td id="tables">
  65. <?php
  66. $dsql->SetQuery("Show Tables");
  67. $dsql->Execute('t');
  68. if($dsql->GetError()!=''){
  69. echo "<span style='color:#dc3545'>找不到您所指定的数据库 $dbname</span><br>";
  70. echo $qbutton;
  71. }
  72. echo "<select name='exptable' id='exptable' size='10' style='width:60%;height:220px' onchange='ShowFields()'>";
  73. while($row = $dsql->GetArray('t',MYSQL_BOTH)){
  74. echo "<option value='{$row[0]}'>{$row[0]}</option>";
  75. }
  76. echo "</select>";
  77. $dsql->Close();
  78. ?>
  79. </td>
  80. </tr>
  81. <tr>
  82. <td id='fields'></td>
  83. </tr>
  84. <tr>
  85. <td height="26">&nbsp;要替换的字段:<input name="rpfield" type="text" id="rpfield" class="alltxt"></td>
  86. </tr>
  87. </table>
  88. </td>
  89. </tr>
  90. <tr bgcolor="#F8FCF1">
  91. <td height="26">&nbsp;替换方式:</td>
  92. <td>
  93. <label><input name="rptype" type="radio" id="ot1" value="replace" checked='1' class='np'>
  94. 普通替换</label>
  95. <label><input type="radio" name="rptype" id="ot2" value="regex" class='np'>
  96. 正则表达式</label>
  97. &nbsp;主键字段:
  98. <input name="keyfield" type="text" id="keyfield" size="12" class="alltxt">(正则模式必须指定)
  99. </td>
  100. </tr>
  101. <tr>
  102. <td height="26">&nbsp;被替换内容:</td>
  103. <td><textarea name="rpstring" id="rpstring" class="alltxt" style="width:60%;height:50px"></textarea></td>
  104. </tr>
  105. <tr>
  106. <td height="26">&nbsp;替换为:</td>
  107. <td><textarea name="tostring" id="tostring" class="alltxt" style="width:60%;height:50px"></textarea></td>
  108. </tr>
  109. <tr>
  110. <td height="26">&nbsp;替换条件:</td>
  111. <td><input name="condition" type="text" id="condition" style="width:60%" class="alltxt">(空完全替换)</td>
  112. </tr>
  113. <tr>
  114. <td height="26">&nbsp;安全确认码:</td>
  115. <td>
  116. <input type="text" name="validate" class="alltxt" style="width:80px;text-transform:uppercase">
  117. <img src="../apps/vdimgck.php" style="vertical-align:middle;cursor:pointer" onClick="this.src='../apps/vdimgck.php?'+new Date().getTime()+Math.round(Math.random() * 10000)"></td>
  118. </td>
  119. </tr>
  120. </table>
  121. </td>
  122. </tr>
  123. <tr>
  124. <td height="26" bgcolor="#F8FCF1" align="center" class="py-3">
  125. <button type="submit" name="Submit" class="btn btn-success btn-sm">开始替换数据</button>
  126. </td>
  127. </tr>
  128. </form>
  129. <tr>
  130. <td height="26">
  131. <table width="100%" class="table table-borderless">
  132. <tr>
  133. <td width="70%">结果:</td>
  134. <td width="30%" align="right">
  135. <script language='javascript'>
  136. function ResizeDiv(obj, ty) {
  137. if (ty == "+") document.all[obj].style.pixelHeight += 50;
  138. else if (document.all[obj].style.pixelHeight > 80) document.all[obj].style.pixelHeight = document.all[obj].style.pixelHeight - 50;
  139. }
  140. </script>
  141. <a href="javascript:;" onClick="ResizeDiv('mdv','+');" class="btn btn-success btn-sm">增大</a>
  142. <a href="javascript:;" onClick="ResizeDiv('mdv','-');" class="btn btn-success btn-sm">缩小</a>
  143. </td>
  144. </tr>
  145. </table>
  146. </td>
  147. </tr>
  148. <tr>
  149. <td id="mtd">
  150. <div id="mdv" style="width:100%;height:300px">
  151. <iframe name="stafrm" frameborder="0" id="stafrm" width="100%" height="100%"></iframe>
  152. </div>
  153. </td>
  154. </tr>
  155. </table>
  156. </body>
  157. </html>