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

时间:2015-01-16 19:31:16

标签: urlencode

我有一个Google文档电子表格,我希望客户能够以迂回的方式查询。从本质上讲,这是我的电子表格中的工作查找:

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

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

我看到了一个关于将输入标记到我所遵循的URL末尾的教程,但我遇到的问题是编码会改变链接到它不起作用的点。

这就是我的尝试:

<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+=

它编码&#34;,&#34; &#34; =&#34;和&#34;&amp;&#34;,我不确定如何将这些传递到最终的URL查找而不编码它们。

这可能是一个更容易实现的方法,我还没有考虑过。请帮忙!

1 个答案:

答案 0 :(得分:0)

你只需要像这样分解它:

<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>

您无法真正避免&#39;&#39;的网址转义,但服务器可以毫无困难地解决问题。

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

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