Rakuten

  • 楽天ダウンロード

    楽天市場

おすすめ本

天気予報

最近のトラックバック

  • event (夢茶爺&苦茶爺のPC奮戦備忘録)

カウンタ

VC

admax

« Activereportsでのドキュメント生成中に処理を強制的に中断する方法 | メイン | phpMyAdminでTEXT型のカラムの表示を文字列で行う場合 »

2009年12月10日 (木)

ラジオボタンをdisabledにするとPOSTされてこない

最近仕事でPHPを久々に触っていますが、ラジオボタンの簡単なところでではまってしまった。

ある登録画面で、状態設定のラジオボタンを設置し、全ての入力項目を入れた後で「確認」ボタンで一旦画面の項目を全てdisabledの指定で再表示し、更に「登録」ボタンで実際のDBに登録するという手順です。(以下の様なソースです)

...
<?
if ( 確認ボタン押下時? ) {
    $strDisabled = "disabled";
}

$strChecked1 = "";
$strChecked2 = "";
if ($strStatus == 1) {
    $strChecked1 = "checked";
} elseif($strStatus == 2) {
    $strChecked2 = "checked";
}
?>
<input type="radio" name="radioButton" value="1" <?=$strChecked1?> <?=$strDisabled?>/>状態1
<input type="radio" name="radioButton" value="2" <?=$strChecked2?> <?=$strDisabled?>/>状態2
...

disabledの状態で、POST処理を行なうわけですが、いくら$_POST["radioButton"]を見ても変数が宣言されていません。いくらやってもradioButtonは渡されてこないわけで、DBには値が
登録されません。他のtype="text"のものは渡されてくるのにtype="radio" は渡されない。

type="radio" でdisabled指定のものはPOSTされてこないことを思い出し、状態のデータをtype="hidden" で退避しておくことで、事なきを得ました。

たった2,3ヶ月PHPを触っていないだけでこの有り様、もう少し精進しないと...
しかし、仕様とはいえ、type="text"ではPOSTされるのなら、type="radio"でも
渡されても良い様な気がしますが。

トラックバック

このページのトラックバックURL:
http://app.mitelog.jp/t/trackback/459161/22555153

ラジオボタンをdisabledにするとPOSTされてこないを参照しているブログ:

コメント

コメントを投稿