人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPの質問です。htmlフォームで入力された値をPOSTで内容確認ページの出力処理へ渡し、さらにそこから内容変更のため最初のhtmlフォームの出力処理へと戻る、という処理を書いています。
内容確認ページではhidden属性を指定したinput要素を配置し、【送信】【編集】ボタンの処理を振分ける別のページ(送信完了ページの出力処理)を経由して最初のhtmlフォームに戻ります。この際、最初のhtmlフォームに戻ると未記入だったcheckboxの値が、最初のhtmlフォームでvalueに指定したものに書換えられています(全て)。未チェックのcheckboxが戻ってくるとチェック済みに変わってしまってマズイのですが、原因が分かりません。何なんでしょう?

環境:PHP4.3.10,FreeBSD 4.10-RELEASE-p5 i386,Apache/1.3.33 (Unix)

●質問者: dak
●カテゴリ:コンピュータ
✍キーワード:Apache FreeBSD HTML i386 PHP
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● allows
●15ポイント

http://www.rfs.jp/sitebuilder/perl/03/03.html

302 Found

キャッシュの無効:Expiresヘッダ/Pragmaヘッダ

no-cashe


print ”Content-type: text/html”, ”¥n”;

print ”Pragma: no-cache”, ”¥n¥n”;

◎質問者からの返答

上記コードではHTTPヘッダとして出力されないようでしたので(html出力よりも前に記述しましたが)、header(”Pragma: no-cashe”);としてみましたが、症状は改善しないようです。。


2 ● ukp
●40ポイント

http://www.hatena.ne.jp/1112895218

人力検索はてな - PHPの質問です。htmlフォームで入力された値をPOSTで内容確認ページの出力処理へ渡し、さらにそこから内容変更のため最初のhtmlフォームの出力処理へと戻る、という処理を..

動きを理解するのが難しいですが、考えられることを挙げます。


1.フォームの送信時にスクリプト(JavaScriptなど)で入力値を書き換えているということはないでしょうか。この場合は、画面を読み直したときに同じようにスクリプトで値を戻してやる必要があります。


2.チェックボックスにコントロール配列(nameに[]をつける)を使用していないでしょうか。送信時に配列で渡されるため、処理を誤るとすべてのチェックボックスに同じ値が入ってしまいます。


3.チェックボックスのチェック状態(checked)をプログラムで設定する際に誤った処理をしていないでしょうか。

◎質問者からの返答

3がビンゴです。簡単なケアレスミスですね。

どうも有難うございました!


3 ● ke_ishi
●5ポイント

http://google.com/

Google

#urlはダミー

「htmlフォーム」と書いてるモノがただのhtmlであれば、内容を動的に変更することはできないので、それはふつうの動作です。

フォームをphpで生成し、チェックされたcheckboxのタグ内に「checked」と出力していくようにしてはどうでしょう。

◎質問者からの返答

症状の説明が分かりづらかったので申し訳ないのですが、htmlフォームはPHPから出力しています。回答ありがとうございました!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ