2011-08-30 8 views
10
<select class="txtbx1" name="country" disabled> 

<option value='FR' >FRANCE</option><option value='CH' selected>SWITZERLAND</option> 
</select> 
<select class="txtbx1" name="country" disabled> 

<option value='FR' >FRANCE</option><option value='CH' selected>SWITZERLAND</option> 
</select> 
上記のコードは、そのメソッドがpostであるフォームの中にあります。

しかし、echo $_POST['country']は何も表示していません。一方、選択から無効を削除すると、$_POST['country']は正しい結果を表示します。

+0

は、フィールドを無効にすると、その値がサーバーに送信されていない代わりに '' – Teneff

+7

無効=「無効」を使用してみてください。 – Guttsy

+0

その場合、私はその場で何をしているのですか?フィールドを無効にする必要があります –

答えて

0

フォームタグの様子は?あなたは忘れてしまっているかもしれmethod="post"属性...

+0

いいえ私はhavent ..物事は、私は "無効"属性を持っていないと動作します –

21

disabled属性がどのように動作するかこれは。フォームコントロールを無効にすると、フォームが送信され、キーが$_POST(または$_GET)に存在しない場合、値は無視されます。

提出されたデータに値を表示したいが、ユーザーがページの値を変更できないようにしたい場合は、代わりにreadonly="readonly"を使用してくださいdisabled="disabled"

EDIT

<select>要素はreadonly属性を持っていません。上記の情報はまだそれとして立っ意志<input> sおよび<textarea>のため作品。

あなたの問題を解決するには、ここでの選択を無効にし、バックサーバに値を送信するために隠された入力を使用することです - 例えば

<select class="txtbx1" name="country"> 
    <!-- options here --> 
</select> 

を...、それが無効になっているとき:

<select class="txtbx1" name="country_disabled" disabled="disabled"> 
    <!-- options here, with appropriate value having `selected="selected"` --> 
</select> 
<input type="hidden" name="country" value="value_of_field" /> 
+1

'readonly'は' 'のために有効なので有効ですが、隠し入力の場合は '