如果我要这样做,我会使用SQL::Abstract。
更新:
如果您不想重绘整个页面,您将使用 AJAX。因此,请为自己找到一个您觉得很舒服的 JavaScript 库,其中包括 ajax 调用。Jquery 有这个,其他一些也有。人们对各种图书馆有不同的看法。
无论如何,您的工作流程如下所示:
- 用户提交表单
- javascript 执行客户端验证
- javascript 向服务器提交 AJAX 样式
- 服务器执行服务器端验证、数据操作等。
- 服务器响应数据paylod
- 客户端根据有效负载的内容更新了屏幕。
因此,让我们专注于 5 和 6。
数据负载:AJAX 中的 X 表示 XML,但许多应用程序会发回 JSON 或 HTML。
更新屏幕:
您可以通过设置标签的 innerHTML 或 outerHTML 属性直接将 HTML 应用到现有页面。但这不会更新 DOM。如果您不在 clcinet 代码中挖掘 DOM,那么这就足够了。如果您四处寻找,那么您需要构建节点并将它们添加到您页面的 DOM 中,因此您可能需要考虑发回 JSON 或 XML。
因此,假设您有一个 id='generatedSQL' 的 div,当您的 AJAX 调用重新运行时,它将触发一个回调方法(我们称之为 updateSQL()),并且在回调中,您将拥有类似于以下的代码:
$(#generatedSQL).innerHTML = theVariableHoldingTheHtml;
您的另一个选择是解析 JSONXML/等。并使用 createNode() 等,构建新的 DOM 位并将它们插入您的页面。我没有为你写这个的 jquery 印章。每次我需要做类似的事情时,我都会查找它。
如果查询文本只是仅显示,并且您从不尝试在客户端对其进行挖掘,则只需使用 innerHTML 方法,无论您传递 HTML 还是传递 JSON 并从中生成 HTML。如果查询文本对客户端的内部工作很重要,那么您将需要编写一堆 DOM 操作代码。