プログラミング工房
TOP
Flex基本
開発環境 JavaScript連携 PHP連携1 PHP連携2(AMFPHP) ウィンドウ ボタンスキン 矩形スキン ローカルファイル(テキスト) F5等の対策 ローカルファイル(イメージ) ダウンロード、アップロード 1枚の画像のカラーを変更 時間のかかる計算処理 外部SWFの読込み
Flexで3D
Flexだけで3D Papervision3Dを使ってみる 3Dオブジェクト カメラ、前後判定の工夫しました 自由な形状を作成
Flexでクラス
Class1(白黒ゲームの盤) Class2(白黒ゲームのプレイヤー) Class3(プレイヤーを外部SWF)
PHP
共通関数1
Flexの作品
お問合せの説明 サンプルのソース表示の説明 分子構造の表示(PDBファイル) マンデルブロ集合の画像作成 swf参加型白黒ゲーム(Reversi) ストップウォッチ WEB素材
AIR
AIRを使ってみる ソースファイルのHTML変換を作る
etc.
マンデルブロ集合のギャラリー ジュリア集合のギャラリー wonderflを使ってみました お問合せ

Flexの作品-お問合せの説明

■2011.02.24:作成
お問合せのソース
サンプルに該当するものは左のメニューの「お問合せ」です。

「お問合せ」の作成で使用したもの

左のメニューの「お問合せ」も、もちろんFlex4で作成しています。

「お問合せ」の作成はFlex基本で説明したものを中心に作成しました。
使用しているものは以下の通りです。
 Flex4基本-PHP連携1:PHPのパスに関して
  PHPのパスに関して
 Flex4基本-PHP連携2(AMFPHP)
  PHPとの通信はAMFPHPを使用しています。
  メールの送信をPHP側で行っています。
 Flex4基本-ウィンドウ
  確認ウィンドウを表示する時に使用しています。
  (但し、確認ウィンドウは毎回中央に表示します)
このあたりを参考にソースを見てください。

「お問合せ」で独自で使用しているもの

他のページで説明していない処理を説明します。

入力エラーの時のフォーカス移動(Flex)
 送信ボタンが押されたときに、入力内容のチェックを行って、エラーがあった時、
 エラーのある入力領域にフォーカスを移し場合以下のように行います。
   エラーダイアログのOKボタンが押された時のイベントでフォーカス移動を行います。

"objErr=txtName;"の場所で"setFocus()"を行えばいいと思えますが、この場所で行うと
「送信ボタン」にフォーカスが戻ります。(イベントの管理でこうなっているようです?)
//入力チェックのエラー発生場所
private var objErr:Object;
     :
//送信ボタン
private function onSend():void {

    //入力チェック
    if (txtName.text == "") {
        Alert.show("お名前が入力されていません。", 
            "プログラミング工房",Alert.OK,this,onErrSetFocus);
        objErr=txtName;
        return;
    }
        :
}
//入力エラーの発生場所にフォーカスを移す
private function onErrSetFocus(evt:CloseEvent):void {
    objErr.setFocus();
}

メールアドレスのチェック(Flex)
 メールアドレスのチェックは正規表現のパターンチェックで行っています。
 使用している正規表現は/^[^@]+@[^@]+\.[^@]+$/(行末の";"不要)です。
 チェック内容は以下の様な形です。
    文字列の中に1文字の"@"を含む。
    "@"の前に1文字以上の文字がある。
    "@"の後ろにも1文字以上の文字がある。
    "@"の後ろに1文字以上の"."がある。
    "@"、"."以外は半角・全角チェックを行っていません。
     (日本語ドメインを考慮している?)

 使用している正規表現の説明
    ^ : 文字列先頭
    [^@]+ : "@"を含まない1文字以上の文字列
    @ : 文字"@"
    \. : 文字"."
    $ : 文字列終了
    //メールアドレスのパターン(正規表現)チェック
    var regEmail:RegExp = /^[^@]+@[^@]+\.[^@]+$/
    if (regEmail.test(strEmail) == false) {
        Alert.show("メールアドレスが正しくありません。", 
            "プログラミング工房",Alert.OK,this,onErrSetFocus);
        objErr=txtEmail;
        return;
    }

PHPの処理(メールの送信)
PHPで以下の様な処理を行っています。
   お問い合わせの内容を管理人にメールで送っています。
   確認のメールをお問合せ者にメールで送っています。

メール送信は特に特別なことを行っていません。
 一応ソースの一部を掲載します。
<?php
// Service.php
class Service{
    public function sendEmail($strName, $strEmail, $strData) {
                :
        mb_language("Japanese");
        mb_internal_encoding("UTF-8");
                :
        if (mb_send_mail(KANRI, "お問合せがありました", $data,
                                                 "From: ".POSTM)) {
            //echo "メールが送信されました。";
        } else {
            $err= "メールの送信に失敗しました。";
        }
                 :
        //Flexへ返信
        $arrData = array($err);
        return $arrData;
    }
}
?>


プログラミング工房