2012-03-29 19 views
0

私は最近のようなものに遭遇しました:複数のキー/値を送信する方法があった場合は、2番目のパラメータ2は任意のJSせずに、送信された場合、私は、好奇心旺盛だったHTML:要素の名前/値は複数ですか?

  • <form method="get" action="/somewebdir/script.php"> 
        <input type="radio" name="param0" value="foo" /> 
        <input type="radio" name="param1" value="foo" /> 
        <input type="radio" name="param2" value="bar" /> 
        <input type="radio" name="param2" value="bar" checked="checked" /> 
    </form> 
    

。ページのようなものにつながるようにするため
は:

  • http://domain/somewebdir/script.php?param2=bar&param3=foobar

私は"bar"から"bar&amp;param3=foobar"に値を変更しましたが、明らかに特殊文字(&=)となりますコード化される。

アイデア?それは常に負のハンドラ(script.php)によって呼び出される他のものに影響を与えるだろうパラメータを、送信されますよう(再びW/O JS)


隠し要素が

+0

フォームが送信されるときに送信されるその他のパラメータしかし、これは、ラジオボタンがチェックされているかどうかにかかわらず、常に発生します。 – Stefan

+0

@スティファン:まさに:)、それを避けようとしています。 "script.php"が本当にハンドラであるとしましょう。最悪の場合は、コンテンツに影響を与えます。この場合、私は単純な 'debug'ラジオボタンを作成しようとしていました。今のところ、チェックボックスを設定していますが、ユーザにとってよりわかりやすいように、以前のラジオボタンとまったく同じですが、 'debug = 1'(またはそれに類似したparam)が追加されたデバッグカラムを作成したかったのです – vol7ron

+0

javascriptなしでこれを行う方法はありません。また、ラジオボタングループを2つのフォームに分割し、2つ目のフォームに 'foobar'という値を持つ' param3'入力を追加することもできますが、1つのボタンで両方のフォームを送信することはできません。 – Stefan

答えて

2

いいえ、できません。代わりに、サーバー側から行います(入力の場合と同様に、到着した場合はそれに応じて動作します)。それがユーザーから来ていない場合、それはユーザーの入力ではありません!

各ユーザーに固有の値が必要な場合は、非表示の入力を使用して、ラジオボタンでその値を確認します。

<input type="hidden" name="param3" value="value here"> 
+0

おそらく、これは「いいえ、できません」のために選択されます – vol7ron

1
動作しません。

あなたが隠し要素として三番目のパラメータを渡すことができます。第二の値は三番目のパラメータを処理する前に、「オン」(チェック)した場合

<input type="hidden" name="param3" value="foobar" /> 

次に、サーバ側では、確認してください。

サーバー側のスクリプト(script.php)がコントロールから外れていて、2番目のパラメーターが指定されている場合にのみ、3番目のパラメーターを渡す必要がある場合、JSなしで不運になります。

1

Ususallyには、カスタム区切り文字を使用して、サーバー上でそれを解析したい:

<input type="radio" name="param2" value="bar|happy|friday" checked="checked" /> 
0

あなたは「隠された」要素を使用する必要があります。必要に応じて余分な要素を処理することができます。あなたが名前と値を持つ隠し入力を追加することができます

限り、タグの名前が異なっているとして、彼らは$ _GETや$ _POST配列の異なる要素として渡されます

http://www.w3.org/wiki/HTML/Elements/input/hidden

0

...

関連する問題