0

次のような3つのパラメーターを持つフォームを含むWebページがあります

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 (ページの中央) の値を変更すると、フォームが再送信され、再送信されたページはまだパラメーター形式のままです。URLを書き換え後のフォーマットにする方法は?

送信ボタンに何か問題がありますか?

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(ファンシーなURL用に)を破棄して、単に使用しますPOST。検索エンジンはフォームにクエリを実行しないため、GET を使用する利点はありません。GET を使用すると、コンテンツをスクレイピングしてその動作を消化しようと考えている人が簡単に使用できるようになる可能性があります。また、javascript が有効になっていない人は、私のソリューションでフォームを使用できないことを覚えておいてください。

于 2012-07-14T16:50:31.107 に答える