【发布时间】:2016-01-11 20:15:49
【问题描述】:
在 eBay 等网站上,返回搜索页面后,搜索选项均已填写。我想对我的网站执行相同操作,目前,返回搜索页面会返回正确的搜索结果,但搜索表单为空。
到目前为止我看到的两种方法:
- 用 HTML 编写表单,使用 JS 解析查询字符串并设置表单值。
How can I pre-populate html form input fields from url parameters?
- 在 JS 中使用查询字符串中的任何值生成表单,如果没有给出查询字符串,这将生成一个空白表单。
Query String for pre-filling html form field
这两种解决方案看起来都很老套。我想这是一项常见的任务,是否有标准或干净的方法可以在一两行中执行此操作?
显然有一些东西可以将表单中的字段序列化为查询字符串,应该有一种方法可以反过来使用它来获取查询字符串并填写表单字段,而不必“滚动你自己的”循环在 JS 中。
【问题讨论】:
-
HTTP 是一种无状态协议。正如 Derek Pollard 所建议的那样,“记住”事物的一种方法是使用会话/cookie。您可以使用 HTML5 本地存储在服务器端或客户端执行此操作。或使用 GET 参数,例如您使用的引用。如果您想隐藏某些信息,可以尝试使用某种编码/解码来隐藏 URL 中的信息。
-
如果您使用服务器端语言,一种方法是在会话中保存当前搜索页面的 uri(当然,所有获取参数),以便稍后在需要时轻松访问。预填充通常是通过这些 get 参数完成的。
-
是的,但也许我没有写一个明确的问题,我添加了一些东西来帮助解释我到底在寻找什么。我知道这是可以做到的,但通常的做法对我来说似乎效率很低。
-
@neoDev 我正在寻找解决方案。
-
使用 JavaScript。我没有标记 PHP。请不要删除您以前的 cmets。
标签: javascript html forms