HTML

disabledになっている値をサーバにPOSTする

2013/12/09

disabledの値をサーバーにPOSTする

HTMLでFORMに貼りつけた値をサーバのCGIにPOSTする際にその部品がdisabledになっているとサーバに送信されません。
(今さらながらハマりました。)

これを防ぐには大きく分けて2つの方法があります。

送信直前にdisabledを解除

これは送信直前にdisabledになっている値を解除してサーバのCGIに送信します。

「送信直前にdisabledの値をhiddenにコピー」よりも隠しタグが不要な分、実装は楽です。
しかし、サーバで処理をしている間も画面を表示したままの場合は、ユーザーが画面の情報を書き変えてしまう事が発生します。
(POSTした後にdisabledに戻せば問題ないのかも知れませんが...)

送信直前にdisabledの値をhiddenにコピー

これは送信直前にdisabledになっている値を別の隠しタグにコピーして送信し、サーバのCGIではそちらの値を使います。
こちらは画面表示をしたままでもdisabledの状態に変わりはないので「送信直前にdisabledを解除」のような心配ありません。

どちらの方法も一長一短なので、利用する場合は注意が必要です。

特にユーザーの選択状態によって「入力」の可、不可が決まるような画面は、サーバ側のCGIで必ず値が来ると思って処理をしていると思わぬところで不具合を引き起こします。




-HTML
-, , ,

Copyright© ソフトウェア開発日記 , 2019 All Rights Reserved.