PHPフォーム入力プログラムの流用性を高める方法

このQ&Aのポイント
  • PHPフォーム入力プログラムの流用性を高めるための方法を検討しています。フォームのロジックパターンは決まっているものの、毎回一から作成する必要があります。より効率的な設計方法や改善策があれば教えてください。
  • PHPフォーム入力プログラムの流用性を向上させるために、効率的な設計方法を模索しています。同じようなフォームを作成する際に、過去のコードを流用することができず、時間がかかってしまいます。改善策やアドバイスがあればお教えください。
  • PHPフォーム入力プログラムの流用性を高めるためにはどうすれば良いでしょうか?フォームのロジックパターンは決まっているため、同じようなフォームを作成する場合も多いですが、前回作成したものを流用することができず、手間がかかってしまいます。より効率的な設計方法や改善策があれば教えてください。
回答を見る
  • ベストアンサー

PHPによるフォーム入力プログラムの流用性を高めたい

フォーム入力プログラムを作る時 こんな感じのパターンが多いと思います。 [STEP1] 新規入力させる STEP2で、同意をえれない場合、入力内容を再入力する [STEP2] 必須項目が入力しているかどうかをチェックし、 できていなければ、エラーを表示する。 入力項目一覧を表示、ユーザーにこれでいいか同意を求める。 だめならSTEP1へ戻る よければSTEP3へ進む [STEP3] 入力した内容をデータベースにインサートする。 入力した内容をメールでセンドする。 二重投稿を防止する。 と、フォームのロジックパターンとしては どんなフォームを作成してもある程度決まっているのですが、 再度同じようなフォームを作成する時、 ロジックパターンはある程度決まってても 前回作成したものの流用性はほとんど効かず、 毎度作成に大変時間がかかってしまいます。 具体的には、前回作ったフォームをコピペしたり変更しても 変更する内容が多すぎて 結局、一からフォームを書くのとさほど変わらないということです。 そこでもっと流用性を高める設計方法はないのだろうかと 考えてみたのですが、良い解決方法が見つかりません。 いかなるフォーム形態であろうと、 いかなるデータ数であろうと、 自在にフォームの改変が容易にできる。 そんな設計方法があれば、アドバイスをお願いします。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • ggaogg
  • ベストアンサー率43% (38/88)
回答No.1

PHP学習時に本で読んだ程度ですが、 PEARライブラリにHTML_QuickFormというものがあります。 フォームに一般的な、入力、チェック、確認の機能があります。 ただ、ある程度フォームの見栄えは決まってきてしまいます。 自分でアプリケーション作成するために使ったことはないので、これ以上のことは言えませんが、参考になれば幸いです。

yuzuru0024
質問者

お礼

回答ありがとうございます。 HTML_QuickFormを利用するか、 HTML_QuickFormのアーキテクチャを分析して オリジナルを作ってみようかと思います。

関連するQ&A

  • PHP 入力フォームにあらかじめ文字を入れておく

    PHPプログラミングをしております。 入力フォームを作成しているのですが、前のページで入力し、受け取った内容をもう一度表示させたいのです。 入力フォームにあらかじめ文字を入れておくのは、フォームタグに value="文字" をつけたせば良いのはわかったのですが、 今回文字を$text = $_POST['name']; という形で受け取っています。 入力フォームにあらかじめこの受け取った$text を表示させるにはどうすれば良いのでしょうか。

    • ベストアンサー
    • PHP
  • フォームの入力時の項目切替について

    メールフォームを作っているのですが、以下の機能が出来るかお伺いしたく質問させていただきます。 フォーム入力欄にて ・変更項目:「1」・「2」・「3」・「4」 ・名前: ・郵便番号: ・住所: ・メールアドレス: ・備考: 上記の普通のフォームがあるとして、一番最初の変更項目にて 「1」を選択した場合には、その下にある→変更項目、名前、郵便番号、住所、備考の入力ボックスのみ残し他のメールアドレス入力欄は未表示にする。 また、変更項目欄にて「2」を選択した場合には→変更項目、名前、備考の入力ボックスのみ残し他の郵便番号、住所入力欄は未表示にする。 と言ったような事を行ないたいと考えております。 要は、フォームで各種変更依頼なるものを作成し、会員であるお客様に対し変更項目の内容を入力していただこうとしています。 ですが、変更項目毎にフォームを作るのも可能ですが、どうせなら1つのフォームで処理できるのであればと考えました。 また、お客様にとって初めに変更項目を選択していただき残りの入力欄は必要箇所だけ残っていれば、少々親切かな?とも考えております。 スクリプトが分かれば良いのですが、色々と検索してみても発見できなかったので質問させていただきました。 参考URLがあれば教えていただくだけでも結構ですし、スクリプトがあるようでしたら宜しくお願いいたします。

  • phpによる入力フォームのチェック

    入力フォームの入力チェックを行いたいと思います。 姓     :テキストボックス <div></div> 名     :テキストボックス <div></div> 郵便番号:xxxx <div></div> とあった場合、 javascriptで、チェックをかけ、未入力の際等に 各DIVブロックに、innerhtmlで、「入力項目を確認してください」等を 書き込ませば対応できると思っています。 PHPでもjavascriptと同じように、innerhtmlと同じようの動作をさせ ページの一部分を変更させるとか できるのでしょうか? それとも受け取った内容(POST)をチェックし、 「入力項目を確認してください」のページを別に用意する必要があるのでしょうか?

    • ベストアンサー
    • PHP
  • フォームに入力しているのにはじかれてしまう

    詳細がわからないのですが、 あるWebでフォームに住所や氏名などを入力して、送信ボタンで内容を送るページを作成しています。 たまに、全ての項目に入力しているのに例えば「住所がブランクです。入力してください」というMsgではじかれてしまうという問い合わせがあります。 よく、「Cookieを有効にしてください」とか「JavaScriptがどうのこうの」ということが書いてあるフォームもありますが、本当の所原因は何でしょうか。 例えばブラウザはIEでしか使用できない、や他に原因があるのでしょうか。 よろしくお願いします。初心者です。

    • ベストアンサー
    • CGI
  • PHPでフォームに自動入力

    PHP初心者です。 (1)フォームに手入力しsubmit (2)手入力の内容をファイルに保管 (3)よそのサーバのフォームを開きユーザ名/パスワードを入力しsubmit (4)パスワード入力後に展開されるフォーム(https)に(1)の手入力の内容を入力しsubmit (5)"(4)"でsubmitした結果で次に表示するフォームを決定したい  submitした結果はフォームに正常/エラーが表示されます 自サーバのWebフォームに入力された内容を他のサーバに反映したい。 サーバへの反映結果で次処理を変えたい。 他のサーバに反映させる手段はWebの入力フォームのみとなっています。 (3)(4)(5)をサーバで動作するPHPで自動的(トリガーは(1))に行いたいです。 (3)(4)(5)の実装方法をどなたかご伝授いただけないでしょうか。 サンプルのソースがあればありがたいです。 linuxサーバ(Fedora) PHP 5 質問内容が大きすぎ申し訳ないですが伝授いただけないでしょうか。

    • 締切済み
    • PHP
  • PHPでのフォーム

    よろしくお願いします。 PHPでフォームを作成しております。 例えば電話番号の入力チェックを行う際にはpreg_matchを使用して可能かと思いますが 電話番号の項目が必須ではなく、入力された時のみにチェックするにはどのように記述すればよいでしょうか?

    • ベストアンサー
    • PHP
  • PHP入力フォームについて

    現在入力フォームを作っています。 流れとしてはDBに入っている会員情報をフォーム上に呼び出して(各inputにはDB内の会員の情報が表示される)各会員が自分の情報を編集できるというフォームです。 ここで質問なのですが、会員の人が自分の入力内容を変更した際に入力漏れがあるとフォーム画面に戻るのですがその際に入力した内容が表示されるのではなくDB内のデータが表示されてしまいます。 これをDB内のデータではなく入力した内容にしたいのですが、どうしたらよろしいでしょうか? ソースは下記になります。 form.php <?php DB呼び出し・・・ $_SESSION['name'] = $row['name']; ・・・ ?> <?php echo $_SESSION['err_name']; ?> <input type="text" name="name" value="<?php echo $_SESSION['name']; ?>" /> confirm.php <?php $name = htmlspecialchars($_REQUEST['name']); if(!strlen($name)) { $_SESSION['err_name'] = '氏名を入力してください。'; $errFlag = true; } else { unset($_SESSION['err_name']); } エラーの時はform.phpに戻る ?> <?php echo $name; ?> としています。 とても省略していますが、お分かりの方がいらっしゃいましたら教えていただけると助かります。

    • 締切済み
    • PHP
  • フォームへの未入力を無くしたい

    [やりたいこと(宜しくおねがいします)] フォームの未入力「コンボボックス」と「テキストボックス」を事前に把握したい。 [(やりたいこと)の実現と希望] このサイトでアドバイスを頂きまして、長年に渡り作成できたデータベースが「68」、入力するフォームは「78」を超えます。現状「フォーム」の構成を生かす方法を含めアドバイスをお願いします。 [入力するフォームに共通していること] 1,コンボボックスとテキストボックス  ・全てのコンボボックスへの選択入力は必須になっている。  ・テキストボックスは未入力箇所も発生する。「未入力箇所は不特定」 2,フォームに共通して配している2つのコマンドボタン  ・フォームを閉じるボタン「マクロ(クリック時)」  ・情報の最新化ボタン「マクロ(クリック時)」   ※コンボボックスの選択項目追加時に反映用として配置 以上ですが、宜しくお願いします。

  • ACCESS2003フォーム入力

    ACCESS32003のフォームウィザードで作成した単票形式フォームで、データを表示することはできるのですが、データを変更(入力)することができません。 XP(SP3)でSqlserver2005のテーブルをODBC接続している環境です。 テーブルリンクは問題ありません。 フォームプロパティのデータ入力用を『はい』にしましたができませんでした。 入力可能にする方法を教えてください。宜しくお願いします。

  • php5のフォーム

    サーバーの仕様が変わってフォームが動かなくなって困っています。 現在のフォームはphp4で、仕様はphp5にしか対応しなくなったということです。 古いコードが使われているからだとは思いますが、 全くの初心者の私には何をどう書き換えたらいいのかさっぱりで、質問に至った次第であります。 現在の状況を説明しますと、フォームに内容を入力して、 エラー画面、確認画面まではしっかり動くのですが、 ”この内容で送信する”ボタンで 問い合わせフォーム真っ白になってしまいます。 ソースは以下です。 ・mail.php========================= <? include_once "func.php"; include_once "mail.pear.php"; class MainClass{ function MainClass(){ switch( $_REQUEST['type'] ){ case "step1": if( $this->Chk_Input() ){ $_REQUEST['act'] = ""; break; } break; //メール送信 case "step2": // 管理者にメール送信 $msg = "お問い合わせフォームより以下の内容が送信されました。\n\n" ."内容をご確認の上、ご担当者様へご連絡をお願いいたします。\n\n\n" ."お名前 : ".$_POST['name']."\n" ."メールアドレス : ".$_POST['mail_ad']."\n" ."お問い合わせ内容 : ".$_POST['other']."\n"; new MailSendByMTA( "**@**.jp" , "**@**.jp" , "【お問い合わせ内容】" , $msg , "" , 0 ); // 登録者にメール送信 $msg = "".$_POST['name']." 様\n\n" ."このたびは「お問い合わせ」をいただき、誠にありがとうございます。\n" ."お問い合わせ内容をご確認ください。弊社スタッフより改めてご連絡いたします。\n\n" ."お名前 : ".$_POST['name']."\n" ."メールアドレス : ".$_POST['mail_ad']."\n" ."お問い合わせ内容 : ".$_POST['other']."\n\n\n\n" ."(株)******\n\n" ."〒111-1111 **県**市****123-456\n" ."電話:000-000-0000 FAX:000-000-0000\n"; new MailSendByMTA( "**@**.jp" , $_POST['mail_ad'] ,"【お問い合わせ内容】" , $msg , "" , 0 ); pageJump( $_SERVER['PHP_SELF']."?act=step2" ); break; } switch( $_REQUEST['act'] ){ case "step1": include_once "review.html.php"; break; case "step2": include_once "thanks.html.php"; break; default: include_once "form.html.php"; } } function Chk_Input(){ if( chkErr_Func( $_POST['name'],0 ) ){ $this->errTxt .= "お名前を入力して下さい。<BR>"; } if( chkErr_Func( $_POST['mail_ad'],0 ) ){ $this->errTxt .= "メールアドレスを入力してください。<BR>"; } else{ if( chkErr_Func( $_POST['mail_ad'],3 ) ){ $this->errTxt .= "メールアドレスに誤りがないかご確認下さい。<BR>"; } else{ if( $_POST['mail_ad'] != $_POST['mail_ad2'] ){ $this->errTxt .= "メールアドレス入力確認の内容がメールアドレスの内容と異なっています。<BR>"; } } } if( chkErr_Func( $_POST['other'],0 ) ){ $this->errTxt .= "お問い合わせ内容を入力してください。<BR>"; } return ( $this->errTxt != "" ) ? true : false; } } new MainClass(); ?> 長々とすいませんが、ご教授ください。 お願い致します。

    • 締切済み
    • PHP

専門家に質問してみよう