有人可以告诉我下面的功能有什么问题吗?
<form name="Menu" id="menu" onsubmit="this.enviar();">
<select id="pais" name="pais" size="1"">
<option value="polonia">Polónia</option>
<option value="portugal">Portugal</option>
<option value="reino-unido">Reino Unido</option>
</select>
<select id="area" name="area" size="1">
<option value="#">Seleciona uma área </option>
<option value="arquitetura">Arquitetura</option>
<option value="comunicacao">Comunicação</option>
<option value="design">Design</option>
</select>
<input type="submit" value="Pesquisar"/>
</form>
<script type="text/javascript">// <![CDATA[
function vai(link) { location.href= link; }
function enviar(){
var pais = document.menu.pais.value;
var area = document.menu.area.value;
window.location.href("http://www.teste.pt/tag/"+pais+"+"+area);
}
// ]]></script>
不要转到http://www.teste.pt/tag/pais+area
链接,而是执行此操作:http://teste.pt/?pais=holanda&area=informatica
有人可以帮助我吗?
答案 0 :(得分:0)
只需更改href
功能中的目标enviar()
即可。由于变量正在成为查询字符串的一部分,因此建议将它们包装在encodeURIComponent
中,以便为此目的对其进行正确编码。
function enviar(){
// Also recommend using getElementById() to get these nodes
var pais = document.getElementById("pais").value;
var area = document.getElementById("area").value;
window.location.href("http://teste.pt?pais=" + encodeURIComponent(pais) + "&area=" + encodeURIComponent(area));
}
如果您希望JavaScript继续重定向到同一链接http://www.teste.pt/tag/"+pais+"+"+area
,但在内部将其处理为http://teste.pt/?pais=holanda&area=informatica
,则必须使用重写规则来完成。如果您使用的是Apache,则应将以下内容放入.htaccess文件中:
RewriteEngine On
RewriteRule ^tag/([^+]+)\+(.*)$ /?pais=$1&area=$2 [L]