ESP32 - 具有 2 个网页和一个表格的网络服务器

ESP32 - Webserver with 2 webpages and one form

我需要编写一个 ESP32 作为网络服务器并有 2 个简单的页面。

第一个应该包含一个用户必须填写的表单。(一个文本框,一个下拉列表和一个复选框。)表单有一个提交按钮,当它被按下时,值被写入ESP32,出现一个新的页面。这个新页面将通过 AJAX 调用动态更新其内容。

我找到并看过无数的教程,并设法制作了第二个 AJAX 页面,该页面无需刷新即可自行更新。我无法理解如何使用表单制作 / 根页面来提交其数据,并转发到第二页。

所以基本上问题是 3:

  1. 如何在 ESP32 上拥有多个页面?
  2. 如何提交表单以便将值存储在 ESP 上的变量中?
  3. 提交按钮如何转到下一页?

谢谢

-----编辑:-----

我用这个示例找到了问题 1 和 3 的答案:https://www.arduinoslovakia.eu/blog/2019/4/esp8266---http-server-s-viac-strankami?lang=en

问题 2 仍然很难打开。谢谢!

您需要解析传入的 url,具体取决于您随表单发送的请求。最常见的是 POST 请求,涉及 HTML 表格。

如果您向 ESP 发送 POST 请求,那么您的数据将在正文中,您应该在其中进行解析。您将收到这样的请求(参考:https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST

POST /test HTTP/1.1
Host: foo.example
Content-Type: application/x-www-form-urlencoded
Content-Length: 27

field1=value1&field2=value2

对于 GET 请求,您需要从传入的 URL 中解析它。传入的 url 会喜欢以下内容:

foo.example/?field1=value1&field2=value2