[PHP-users 35381] Re: チェックボックスにチェックがない場合

kabiko @ timedia.co.jp kabiko @ timedia.co.jp
2010年 10月 22日 (金) 16:54:46 JST


こんにちは。
安孫子です。


> if (isset($_REQUEST['hoge'])) {
>     if (count($_REQUEST['hoge']) === 1 and $_REQUEST['hoge'][0] === 'no data') {
>         // hiddenに入れたno dataだけがきているのでhogeを空値にする
>     } else {
>         // no data以外のhoge配列で値を更新する
>     }
> }

上記の記述がそもそも、

    if (!isset($_REQUEST['hoge'])) {
        // checkされていないので、hogeを空値で更新する
    } else
        // no data以外のhoge配列で値を更新する
    }

とできないのは、どのような理由でしょうか。

もし、POST/GET送信されて来ているのかどうかの確認を行っていないようでしたら、
<input type="hidden" name="send_form" value="1">
などをHTMLに加えて、

if (isset($_REQUEST['send_form'])) {

    //
    // そのほかのフォーム送信されてきた情報を処理
    //
    
    //checkboxの処理
    if (!isset($_REQUEST['hoge'])) {
        // checkされていないので、hogeを空値で更新する
    } else
        // no data以外のhoge配列で値を更新する
    }
}

などとしてみてはいかがでしょうか。
(もしかしたら、そのほかの処理もシンプルになるかも?)

少し論点がずれている可能性もありますが、
いかがでしょうか。






PHP-users メーリングリストの案内