0

我有一个表单的网页有 3 个参数,比如

http://www.likeforex.com/currency-converter/fxconverter.php?f=euro-eur&t=usd-us-dollar&amt=1

我使用 .htaccess 将页面重写为:f_t.htm/amt为:

http://www.likeforex.com/currency-converter/euro-eur_usd-us-dollar.htm/1

但是,我的问题是当用户更改amt(页面中间)的值时,表格被重新汇总,重新汇总的页面仍然是参数格式。如何在重写后格式中制作网址?

提交按钮有什么问题,还是其他什么?

the form:
<form name="e" method="get" action="fxconverter.php">
the amt parameter:
<input type="text" id="amt" name="amt" size="16" maxlength="16" value="'.$amt.'" onclick="this.focus();this.select();" />'
the submit button:
<input type="submit" value="Convert" class="bt" />
the .htaccess line: 
RewriteRule ^(.*)_([^_]+)\.htm/([^/]+)$ fxconverter.php?f=$1&t=$2&amt=$3 [NC]

非常非常感谢你。

4

1 回答 1

1

您不能使用表单,无论POST/GET并期望参数像 url 一样输出,例如http://www.likeforex.com/currency-converter/euro-eur_usd-us-dollar.htm/1

您需要做的是稍微更改表单并使用 javascript 构建 url,然后重定向。

<script>
function goForm(form){
    f = form.elements["f"].value;
    t = form.elements["t"].value;
    amt = form.elements["amt"].value;

    window.location.href = 'http://www.likeforex.com/currency-converter/'+f+'_'+t+'.htm/'+amt;
}
</script>

<form name="currencyForm" method="GET" action="">
<input id="f" name="f" value="euro-eur" type="hidden">
<input id="t" name="t" value="usd-us-dollar" type="hidden">
<input id="amt" name="amt" size="16" maxlength="16" value="1" onclick="this.focus();this.select();" type="text">
<input type="button" name="button" value="Click" onClick="goForm(this.form)">
</form>

然后您可以利用 mod_rewrite。

我个人会废弃GET(对于花哨的网址)并使用POST. 搜索引擎不会查询您的表单,因此仅使用 GET 没有任何优势,因为它可能会让想要抓取您的内容以消化其工作原理的人更容易。还要记住,没有启用 javascript 的任何人都无法在我的解决方案中使用该表单。

于 2012-07-14T16:50:31.107 回答