- ベストアンサー
条件分岐のさせ方について
- php初心者です。Dreamweaver CS5とxamppを使用してメールフォームを作成しています。現在、if else を使ってフローを実行しているのですが、問題が発生しています。
- 【現象1】PF12を押してブラウザ表示させると同時にメールが送信されてしまいます。【現象2】ブラウザ表示させた画面では、送信処理が完了しました画面以降の部分まで表示されてしまいます。
- 初心者故に条件分岐の使い方に問題があるような気がします。どなたか解り易いアドバイス頂けると有難いです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
それぞれの処理を関数として設定し、必要に応じて呼び出す様にすれば、基本的にはOKだと思います。 問題になるとすれば、何のボタンを押したか?~の判定をどうやって行うかです。 フォーム画面上では常に別途、JavaScriptを走らせて置いて、常時キーボードからの入力をリアルタイムで確認させる方法か。各ボタンのリンク先に引数を設定して、引数をPHP側に渡して処理を分岐される方法が考えられます。 ━ここから━━━━━━━━━━━━━━━━━━━━━━━━ function A() { /* A画面 */ 【各項目欄へご記入・ご選択をお願いします】画面 *フォーム表示 } function B() { /* B画面 */ 【以下の内容で送信してよろしいですか?】画面 } function C() { /* C画面 */ 送信処理 【送信処理が完了しました】画面 } function X( $ボタン=null ) { /* 何かボタンが押された時の処理 */ $ボタン = 押されたボタン if ( $ボタン == 取消 ) { ・記入した内容のクリア } else if ( $ボタン == 確認 ) { ・入力チェック、NGなら → A画面 (function A) へ ・入力チェック、OKなら → B画面 (function B) へ } else if ( $ボタン == 修正 ) { ・入力内容は保持したまま → A画面 (function A) へ } else if ( $ボタン == 送信 ) { ・C画面 (function C) へ } else if ( $ボタン == 戻る ) { ・HPトップページ へ } } ━ここまで━━━━━━━━━━━━━━━━━━━━━━━━ 関数の処理はかなり簡素に書きましたので、必要と思われる処理は追加して下さい(言うまでも無いですが、変数名とかに日本語はNGですので)。
お礼
細かなアドバイス頂き大変感謝です! 早速実行してみて問題クリアできました。 また解らないことありましたら宜しくお願い致します。