有没有办法将变量从 HTML 表单提交传递给 URL?

Is there a way to pass variables to a URL from an HTML form submission?

我有一个 Google Docs 电子表格,我希望客户能够以迂回的方式进行查询。本质上,这是我的电子表格中的有效查找:

https://docs.google.com/spreadsheets/d/1nCp5h0bMr3bnjU7OslbwjMyT-qc5-mt10IEjM7izSmg/gviz/tq?tqx=out:html&tq=select+A,+B,+C,+D,+E,+F,+G,+H+WHERE+D+CONTAINS%20985253

我想做的是设置一个表单,其中 link(985253)末尾的数字是用户输入,一旦他们点击提交,它就会将该数字附加到URL 并拉起页面。

我看到了一个关于将输入标记到 URL 末尾的教程,但我遇到的问题是将 link 更改为它的编码不起作用。

这是我试过的:

<form action="https://docs.google.com/spreadsheets/d/1nCp5h0bMr3bnjU7OslbwjMyT-qc5-mt10IEjM7izSmg/gviz/tq" method="GET">

<input type="text" name="tqx=out:html&tq=select A, B, C, D, E, F, G,H WHERE D CONTAINS "/><br/>

<input type="submit" value="Submit"/>

</form>

它产生:

https://docs.google.com/spreadsheets/d/1nCp5h0bMr3bnjU7OslbwjMyT-qc5-mt10IEjM7izSmg/gviz/tq?tqx%3Dout%3Ahtml%26tq%3Dselect+A%2C+B%2C+C%2C+D%2C+E%2C+F%2C+G%2CH+WHERE+D+CONTAINS+=

它对“、”、“=”和“&”进行编码,我不确定如何在不对它们进行编码的情况下将它们传递给最终的 URL 查找。

可能有一种我没有考虑过的更简单的方法来做到这一点。请帮忙!

你只需要像这样分解它:

<form action="https://docs.google.com/spreadsheets/d/1nCp5h0bMr3bnjU7OslbwjMyT-qc5-mt10IEjM7izSmg/gviz/tq" method="GET">

<input type="hidden" name="tqx" value="out:html"/>
<input id="tq" type="hidden" name="tq" value="select A, B, C, D, E, F, G,H WHERE D CONTAINS "/>
<input id="query" type="text"/>

<input type="submit" value="Submit"/>

</form>

您无法真正避免 url 对 ',' 的转义,但服务器可以毫不费力地对其进行转义。

要将数字附加到 tq 值,您需要使用一点 javascript。为简单起见,我将使用 jquery:

$(function() { 
    $('form').on('submit', function() { 
       $('#tq').val( $('#tq').val() + $('#query').val() ); 
    });
});