2015-01-16 134 views
1

我有一个Google文档电子表格,希望客户能够以迂回的方式进行查询。从本质上讲,这里是我的试算工作查找:有没有办法将变量传递给HTML表单提交中的URL?

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

它编码的 “”, “=” 和 “&”,在这里我不知道如何将它们传递给最终的URL查找而不用对它们进行编码。

这可能是一种更简单的方法,我没有考虑过。请帮忙!

回答

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> 

你真的不能避免网址转义的“”,但服务器不会有任何麻烦它反向转义。

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

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

完美的工作。非常感谢!! –

+0

因此某处更新了某些内容,上述解决方案不再有效。现在可接受的查询会在指定的列下拉出电子表格中的所有内容。我找不到会导致这种情况发生的Google搜索参数更改,如果有人有任何想法,我很好奇吗? –

+0

到目前为止,看起来发生在Drive接管Google文档并将其从spreadsheets.google.com程序转到docs.google.com时失败了,并且无法通过gviz正确访问JSON数据。仍在寻找解决方法。 –

相关问题