我需要从搜索中添加到网址的已提交文字。我在这里找到了一些代码Add text to parameter before sumbit form,这部分有效,但我需要添加的一些文字包括#!和?当添加到网址时,转化为%23%21和%3F。
堆栈溢出代码(最佳答案):
<form action="http://example.com/search" method="get" onsubmit="return addText();">
<input type="text" name="q" id="q">
<input type="submit">
</form>
<script>
function addText(){
document.getElementById("q").value += " BBBB CCCC"; // Whatever your value is
return true;
}
</script>
我的网址需要返回以下内容:
http://example.com/?search=TEXT#!summaryList?skipMake=true&skipModel=true
TEXT的URL到达(TEXT是从表单提交的q值),但是#!在总结和?在跳过之前没有,并且URL需要整个字符串才能正常运行。
是否有一种简单的方法可以使用上面的代码使其工作,或者我最好找到PHP脚本?
谢谢!
答案 0 :(得分:0)
使用encodeURIComponent()
对您的网址进行编码(格式为#
):
encodeURIComponent(myUrl)
使用decodeURIComponent()
解码您的网址:
decodeURIComponent(myUrl)
var myUrl = 'search=TEXT#!summaryList?skipMake=true&skipModel=true';
console.log('Encode URL', encodeURIComponent(myUrl));
console.log('Decode URL', decodeURIComponent(myUrl));
答案 1 :(得分:0)
#
之后的任何内容都没有发送到服务器。如果您需要将其发送到服务器,则需要将其放入其自己的参数中(我使用extra
作为名称)。然后,您还需要确保它已正确编码,否则它也可以将该数据作为键/值发送。
http://example.com/?search=TEXT&extra=summaryList%3FskipMake%3Dtrue%26skipModel%3Dtrue
在服务器端,您需要decode it,并获取键/值对