html - 如何调用 Delphi 程序来生成 HTML 页面内容

标签 html sql delphi indy

我正在制作一个 Delphi XE5 VCL 表单应用程序,并且有一个 TIdHTTPServer在主表格和 CommandGetIdHTTPServer程序:

procedure TForm1.IdHTTPServerCommandGet(AContext: TIdContext;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var pageContent: TStringList;
begin
if pos('profile&userName=', ARequestInfo.UnparsedParams) > 0 then
   begin
      pageContent:= TStringList.Create;
      try
         pageContent.Add('<html>');
         pageContent.Add('<head>');
         pageContent.Add('<title>Profile</title>');
         pageContent.Add('</head>');
         pageContent.Add('<body>');
         pageContent.Add('<h1>Profile<h1>');
         pageContent.Add
            ('<input id="subjects" value="Subjects" type="button"/>');
         pageContent.Add('<div id="table-content">');
         pageContent.Add('</div>');
         pageContent.Add('</body>');
         pageContent.Add('</html>');
         AResponseInfo.ContentText := pageContent.Text;
      finally
         pageContent.Free;
      end;
  end;
end;

我想要做的是当用户单击按钮“Subjects”来调用这个函数,该函数会生成一个包含学生类(class)和分数的 HTML 表。该函数从数据库中读取数据并生成一个表。我想避免重新加载整个页面(我尝试在 div 标签中插入表格)。

最佳答案

对于 部分页面刷新 ,您可以使用 JavaScript/Ajax,例如使用 jQuery 之类的框架。 Web 上有许多使用 Ajax 进行动态页面更新的示例。

Ajax 调用将请求作为 HTTP GET 或 POST 请求提交给 HTTP 服务器。 IdHTTPServerCommandGet 中的代码检查请求是否匹配 URL 和 HTTP 方法,然后构建并返回部分 HTML 代码。

在客户端,JavaScript 代码将接收到的部分 HTML 放置在指定的文档树位置。

参见例如:

https://stackoverflow.com/a/3644604/80901

更新:可以在 http://www.habariwebcomponents.de/demo/ajaxstats.html 找到基于 jQuery Ajax 的演示。与 Delphi source (基于我的 Delphi 和 Free Pascal 的 HTTP 服务库)

关于html - 如何调用 Delphi 程序来生成 HTML 页面内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23580750/

相关文章:

javascript - 更改 &lt;script&gt; 的 "src"属性

php - 我在从 html 页面将数据插入数据库表时遇到错误

php - 自动调用PHP页面?

html - 检索样式表时出现 404

javascript - 用于表单的 onsubmit 函数即将出现未定义

mysql - 如果列值为空,则使用其他列

C++ SQL 数据库程序

delphi - 如何将IDL导入到Delphi中?

delphi - 匿名方法转换为指针

http - Delphi 突触 TTCPBlockSocket