做一个sql执行的页面,第一行执行语句:
第二行执行的状态信息
第三行显示sql的执行数据,后台已经写好了,之前查阅的资料是用ajax与后台互联,框架是ext的框架
按钮功能是执行和导出,有谁能提供下大致的模板嘛
ext框架做sql执行页面
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
7条回答
- 「已注销」 2023-03-08 11:08关注
“Devil组”引证GPT后的撰写:
以下是一个基本的 SQL 执行页面的示例代码:<!DOCTYPE html> <html> <head> <title>SQL 执行页面</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script src="https://cdn.sencha.com/ext/gpl/6.7.0/build/ext-all.js"></script> <link rel="stylesheet" type="text/css" href="https://cdn.sencha.com/ext/gpl/6.7.0/build/classic/theme-classic/resources/theme-classic-all.css"> <style type="text/css"> #result { height: 300px; overflow: auto; border: 1px solid #ccc; padding: 5px; } </style> </head> <body> <h1>SQL 执行页面</h1> <form id="sql-form"> <label for="sql-input">SQL 语句:</label> <input type="text" id="sql-input" name="sql" size="100"> <br> <label for="status">执行状态:</label> <span id="status">等待执行</span> <br> <label for="result">执行结果:</label> <pre id="result"></pre> <br> <button type="button" id="execute-btn">执行</button> <button type="button" id="export-btn">导出</button> </form> <script type="text/javascript"> Ext.onReady(function() { // 点击执行按钮 $("#execute-btn").click(function() { // 获取 SQL 语句 var sql = $("#sql-input").val(); // 发送 Ajax 请求执行 SQL $.ajax({ url: "/execute-sql.php", type: "POST", data: { sql: sql }, beforeSend: function() { // 显示执行状态 $("#status").text("正在执行..."); }, success: function(data) { // 显示执行结果 $("#result").text(data); // 显示执行状态 $("#status").text("执行完成"); }, error: function() { // 显示执行状态 $("#status").text("执行出错"); } }); }); // 点击导出按钮 $("#export-btn").click(function() { // 获取 SQL 语句 var sql = $("#sql-input").val(); // 创建一个隐藏的表单,用于提交 SQL 并下载文件 var form = $("<form>") .attr("method", "POST") .attr("action", "/export-sql.php") .css("display", "none") .appendTo("body"); $("<input>") .attr("type", "hidden") .attr("name", "sql") .attr("value", sql) .appendTo(form); form.submit(); }); }); </script> </body> </html>上述示例代码使用了 ExtJS 6.7 和 jQuery 库,并定义了一个包含 SQL 输入框、执行状态、执行结果和执行、导出按钮的表单。点击执行按钮时,通过 Ajax 请求发送 SQL 到后台并获取执行结果,在页面中显示执行状态和执行结果。点击导出按钮时,创建一个隐藏的表单,将 SQL 语句作为表单参数提交到后台,并下载返回的文件。在后台代码中,需要根据接收到的 SQL 语句执行查询,并将结果返回给前端页面。以下是示例后台代码:
<?php // 获取 POST 请求中的 SQL 语句 $sql = $_POST['sql']; // 连接数据库并执行查询 $conn = mysqli_connect('localhost', 'username', 'password', 'database'); $result = mysqli_query($conn, $sql); // 将查询结果转换成 HTML 表格格式 $table = '<table>'; $table .= '<tr>'; foreach (mysqli_fetch_fields($result) as $field) { $table .= '<th>' . $field->name . '</th>'; } $table .= '</tr>'; while ($row = mysqli_fetch_row($result)) { $table .= '<tr>'; foreach ($row as $value) { $table .= '<td>' . $value . '</td>'; } $table .= '</tr>'; } $table .= '</table>'; // 返回 HTML 格式的查询结果 echo $table; mysqli_close($conn);另外,需要创建一个用于接收 SQL 语句并生成文件的后台脚本,示例代码如下:
<?php // 获取 POST 请求中的 SQL 语句 $sql = $_POST['sql']; // 连接数据库并执行查询 $conn = mysqli_connect('localhost', 'username', 'password', 'database'); $result = mysqli_query($conn, $sql); // 将查询结果转换成 CSV 格式 $output = fopen('php://output', 'w'); fputcsv($output, mysqli_fetch_fields($result)->name); while ($row = mysqli_fetch_row($result)) { fputcsv($output, $row); } fclose($output); // 设置响应头,指定下载的文件名和 MIME 类型 header('Content-Type: application/csv'); header('Content-Disposition: attachment; filename="query.csv"'); mysqli_close($conn);上述代码将查询结果转换为 CSV 格式,并设置响应头,使浏览器弹出下载对话框。最后,需要将上述两个后台脚本保存为 execute-sql.php 和 export-sql.php,并将前端页面中的请求 URL 修改为对应的地址。
解决 无用评论 打赏 举报 编辑记录