0

我有一个form元素,我希望 URL 是

http://example.com/page.html?a=constant+QUERY_TEXT

如果我想要

http://example.com/page.html?a=constant&b=QUERY_TEXT

我可以使用

<form action="http://example.com/page.html">
  <input type="hidden" name="a" value="constant">
  <input type="text" name="b">
  <input type="submit">
</form>

但是有没有什么方法可以在不编写脚本的情况下获得我想要的形式?

4

2 回答 2

2

你可以创建一个服务器代理来为你做这件事。在您的服务器上放置一个处理程序,将请求重定向到目标服务器并将常量添加到查询字符串中。根据您的网络服务器,您似乎只需配置设置就可以做到这一点,不需要任何代码。

<form action="/myproxy">
  <input type="text" name="a">
  <input type="submit">
</form>

Apache mod_alias RedirectMatch 指令

RedirectMatch ^/myproxy?a=(.+)$ http://example.com/page.html?a=constant+$1

IIS URL 重写模块

<rewrite>
  <rules>
    <rule name="proxyRedirect" stopProcessing="true">
      <match url="^myproxy?a=(.+)$"/>
      <action type="Redirect" url="http://example.com/page.html?a=constant+{R:1}"/>
    </rule>
  </rules>
</rewrite>

仅使用 HTML 而没有 JavaScript 是无法做到的。

于 2013-08-12T19:18:47.467 回答
0

你到底在张贴什么表格?您使用什么语言?我想我不完全理解你想要做什么,因为这两个例子:

http://example.com/page.html?a=constant+QUERY_TEXT
http://example.com/page.html?a=constant&b=QUERY_TEXT

可以工作,并且可以被接收表单的任何语言解析。解构字符串只需要一点逻辑。我使用 jQuery 和 Ajax 为我的表单提交做了类似的事情。

我有一个简单的按钮,其中包含几个关键参数,如下所示:

<a class="alertDeleteButton" href="https://www.example.com/index.cfm?controller=hobbygroupmember&amp;action=deletemember&amp;deleteuserid=#userid#&amp;hobbyid=#id#&amp;adminid=#user.key()#" id="alertDeleteButton_#id#_#userid#" title="#deleteMemberText#">DELETE</a>

如您所见,href 包含我想传递给我的函数的各种信息(动态和静态)。然后使用 jQuery 我这样做:

 $(".alertDeleteButton").click(function(e) {

   var removeButtonString = $(this).attr("href");
   var parsed_string = $.parseQuery(removeButtonString);
   var currentArgument = $.parseQuery(removeButtonString).currentArgument;
   var hobbyid = $.parseQuery(removeButtonString).hobbyid;
   ......

使用 jQuery,我得到了我需要的所有字段,然后通过 ajax 调用传递它们。

那是你想要做的吗?

于 2013-08-12T19:09:52.757 回答