0

私は明らかに非常に明白な何かを見逃していますが、私を憐れんでください。私はこれが初めてです。

この形式の URL を開くフォームを作成しようとしています。

http://searchplace.com/?sid=Do:Re&id=Fa:(8 digit number input into form)

フォームは次のようになります。

<form method="get" action="http:/searchplace.com/" enctype="application/x-www-form-urlencoded"> 
    <input type="hidden" name="sid" value="Do:Re">
    <input type="hidden" name="id" value="Fa:">
    <input type="text"  name="q" maxlength="8" value="" /> 
    <input type="submit" value="Search" /> 

</form>

ここには少なくとも 2 つの問題があります。

1) コロン (最初の入力の Do と Re の間、および 2 番目の入力の Fa の後) は %3A に変更されます。の有無にかかわらず試してみましたが、代わりにenctypeと言ってみました。私は、いじり回したことさえありましたが、それは今では赤いニシンであると疑っています。コロンだけ欲しい!(まあ、明らかに 2 つのコロンです。)value="Do&#58;Fa"value="Do:Fa"accept-charset="utf-8"

2) 現在、私のフォームの最後のビットは次のようなものを返しますFa%3A&q=12345678。明らかに q は、テキスト入力に「q」という名前を付けたためです。しかし、q は必要ありません。途切れのないものが必要なだけFa:12345678で、名前を付けずに入力番号を URL の末尾に追加する方法がわかりません。

私の質問がまったく意味をなさないほど遠くないことを願っています。このフォームを作成しようとした元の問題は実際に解決しましたが、実際のフォーム自体はまだ私を夢中にさせています. ありがとう!

4

1 に答える 1

0

あなたの望みは理解できますが、そのようにアプローチするべきではありません。データを抽出するには、異なる分割関数を使用する必要があります。使用することをお勧めします

<input type="text" name="fa_q" maxlength="8" value="" />

id=fa&fa_q=12345678 のような URL を取得すると、「fa」を「fa_q」に割り当てることができることがわかります。

urldecodeまた、%3A はブラウザの URL エンコーディングです。PHP で関数を適用することでそれを取り除くことができます

あなたが頑固で、それでもこの fa:12345678 のようにしたい場合は、URL は次のようになります。

/?q=fa:12345678

すべての入力名を取り除き、代わりに ID を入力し、javascript を使用して名前「q」の入力に値を適用する必要があります。正規表現が必要です。

于 2013-01-23T19:46:03.543 に答える