「ITコンサルタント藤田の誰でもできる、ネットで稼げるITビジネス

今や、ビジネスマンの常識 「ITビジネス」


フォームの作成

フォームを自作するには以下の方法があります。

1.HTMLで作成する。
2.PHPなどで作成する。
3.PHP+HTML_QuickFormで作成する。

等の方法が考えられます

1.のHTMLでは何か物足りない。バリデーションがやりづらい。
2.PHPで作成すれば、思うようなものが自在に出来るが、開発時間・コストが大幅に
  掛かる。
3.HTML_QuickFormHTMLは自在・見栄えと言う点で多少犠牲があるが、開発
  時間コストが少なくて済、バリデーションの種類が多く、パラメータを変更する程
  度で機能の変更が出来ます。
  一度、パターンを作成すると、少しの変更で様々なフォームが、少ない時間で作
  成できる
  メリットがあります。

NuclesuCMSで、QuickFormで入力したデータをメールで受け取るまでのプログラム
の作成の仕方をご紹介します。
まだ、ぎこちないのですが、作成したフォームをご紹介します。

本WEBのグローバルナビゲーションの「お問合わせ」タブをクリックしてフォームに入力
してテストして見てください。
あなたが入力された情報が、私のパソコンに送られてきます。

作成の仕方は、書籍のサンプルをコピィーして、少し変更してNucleusCMSに組み込み
ました。

主に、使った参考書籍を紹介します。

1. Nucleusでつくる!最強のブログサイト
  このWEBの構成は、
  Chapter28の「ブログを複数使い分けて構築する。」
   Chapter28の「スペシアルスキンパーツ(About)」
   Chapter21の「Np_ExtraSkinJp」
  などを主に参考にしました。
  グローバルナビゲーションの数だけブログを立てました。
  2つのスペシアルスキンパーツに<sample1next.php>と<sendmail.php>を
  それぞれ組み込みました。
2. 基礎からのPHP [基礎からシリーズ] (SE必修!プログラマの種シリーズ)
基礎からのPHP [基礎からシリーズ] (SE必修!プログラマの種シリーズ)
  の書籍のChapter36の「QuickFormによるフォームの自動生成」の
  <sample1.php> と<sample1next.php>を使いました。
  <sample1.php>: QuickFormを使った入力用のPHPサンプルコード
  <sample1next.php>: QuickFormを使った確認用のPHPサンプルコード
3.今日からつかえるPHP5サンプル集
  の書籍の第4章の<sendmail.php>を参考にしました。
  <sendmail.php>:フォーム入力されたデータをメール送信するPHPサン
  プルコード
4.PEAR入門 PHP標準ライブラリを極める!
 PEAR入門 PHP標準ライブラリを極める!
  04.01章の「レンダラを用いた表示テンプレートのカスタマイズ」にへーダの
  色づけなどのカスタマイズテンプレート・フォームのカスタマイズ等が詳しく
  掲載されています。


応援ポッチット御願いします。

アフィリエイト ブログランキングへ



20120805-modoru2.gif 20120805-home1.gif


次のプログラムは、本WEBでQuickFormでフォーム作成したプログラムの1例です。

/*-------sample1.php  -------*/
require_once 'HTML/QuickForm.php';
require_once 'HTML/QuickForm/Renderer/Default.php';

$form = new HTML_QuickForm('myForm','POST','http://keiosys.com/?special=Sample1next');
$form->addElement('header', 'Header', 'お問い合わせ');
$form->addElement('text', 'Name', '御 名 前:',array("size"=>16,"maxlength"=>20));
$form->addElement('text','post','郵便番号:',array("size"=>6,"maxlength"=>8));
$form->addElement('text', 'Addres', ' 御 住 所:',array("size"=>40,"maxlength"=>46));

$form->addElement('text', 'email1', 'E-MAIL1:',array("size"=>24,"maxlength"=>30));
$form->addElement('text', 'email2', 'E-MAIL2:',array("size"=>24,"maxlength"=>30));

$form->addElement('text', 'Tell', '電話番号:',array("size"=>24,"maxlength"=>30));
$gender[]=$form->createElement("radio","gender",NULL,"男","maile");
$gender[]=$form->createElement("radio","gender",NULL,"女","femaile");
$form->addGroup($gender,"gender","性 別:");
$form->addElement('textarea','message', '問い合せ:', array("cols"=>50,"rows"=>10));
$form->addElement('submit', 'SubmitButton', '確 認');
$form->addElement('reset', 'ResetButton', 'リセット');

$form->setDefaults( array("Name"=>"","gender"=>array("gender"=>"maile")));
$form->addRule('Name',"名前は必須入力です。","required",NULL,"client");
$form->addRule('Name',"名前(5~20文字以内で入力して下さい。","rangelength",array(3,20),"client");
$form->addRule('post',"郵便番号は必須入力です。","required",NULL,"client");

$form->addRule("post","郵便番号は正しい形式で入力してください。例:123-4567","regex",'/^[0-9]{3}\-[0-9]{4}$/',"client");/*PEAR入門P192*/

$form->addRule('email1',"E-Mail1は必須入力です。","required",NULL,"client");
$form->addRule('email2',"E-Mail2は必須入力です。","required",NULL,"client");
$form->addRule('message',"問い合わせは必須入力です。","required",NULL,"client");


$form->addRule('email',"E-Mailは正しい形式で入力してください。","email",NULL,"client");
$form->addRule(array("email1", "email2"),"E-Mai1とE-Mail2は正一致していなければなりません。","compare",NULL,"client");

$form->setRequiredNote("*:必ず御記入下さい。E-MAIL1とE-MAILE2は同じアドレスを入力して下さい。 ");

if($form->validate()){
$form->process("showForm",FALSE);
}else{
//$form->display(); // フォームのBOX(TEXT BOX などを表示する)

$renderer=new HTML_QuickForm_Renderer_Default();
$renderer->setHeaderTemplate("\n\t\n\t\t{header}\n\t");
$form->accept($renderer);
print($renderer->toHtml());

}
?>

< input type="button" value="終了" onclick="WindowClose();" >
< script language="JavaScript" >
function WindowClose() {
window.close();
}


レンタルフォーム

レンタルフォームのフォームマン

応援ポッチット御願いします。

アフィリエイト ブログランキングへ



20120805-modoru2.gif 20120805-home1.gif




2012年04月06日 | Category:Nucleus CMSKeiosys

コメント

コメントはまだありません

このアイテムは閲覧専用です。コメントの投稿、投票はできません。
<-- %ProtectByMD5(end)% -->

ホーム画面へ戻る

累計 本日 昨日