• ベストアンサー

QuickFormって新規作成したページのみ利用可能なのでしょうか?

初歩的な質問で申し訳ありません。 PEARの中のHTML_QuickFormで使用できる入力チェックは新規で作成するフォームにしか使用できないのでしょうか? フォーム自体はデザイナさんに作っていただき既に存在するのでそのフォームに入力チェックロジックを付与したいのですが、そういうことはできますか?

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

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

  • ベストアンサー
  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.1

POSTで送信してname属性が同じならチェックだけに使えるかと。 エラーチェックを同一フォームで行うなら value="{$form.name.value}" などとする必要はあります。 あとadvcheckbox等使うのならそのフォームのままでは多分使えません。

katana0514
質問者

お礼

ありがとうございます。 もしよろしければ簡単なサンプルソースなどをご提示願えないでしょうか? PHP初心者なもので、いまいちイメージがわかなくて・・・・。

その他の回答 (1)

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.2

<form method="post" action=""> name:<input type="text" name="name"><input type="submit"> </form> require_once 'HTML/QuickForm.php'; $form = new HTML_QuickForm(); $form->addElement('text', 'name'); $form->addRule('name', '名前を入力してください。', 'required'); if ($form->validate()) { echo $form->getSubmitValue('name'); } else { print_r($form->_errors);//error }

参考URL:
http://pear.php.net/manual/ja/package.html.html-quickform.tutorial.php
katana0514
質問者

お礼

ありがとうございます。 tany180sxさんのサンプルで理解ができました。 本当に助かりました。

関連するQ&A

  • Pear::QuickFormの代わりになる物

    PHP: 5.3.8を利用しております。 結構前のPHPVerで、HTML_Quickformで、form画面を作成したページを 今回のPHP: 5.3.8に載せて動かしてみたところ ”Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\php\PEAR\HTML\QuickForm.php on line 597” というメッセージが数件表示されるようになりました。 <色々調べてみた結果> ・QuickFormで使用されているメソッド関係が、今後無くなる可能性あり? みたいなことがわかりました。 <対応方法> ・Deprecated: メッセージが表示されないように、設定ファイルの変更 ・作り直し。 がわかりました。 「設定ファイルの変更」は、解決にならないと思うのでする予定はないのですが、 作り直しとして、「QuickForm2」というのものがあることを知りました。 【質問】 QuickForm2で作り直しに挑戦してもよいのですが、stableバージョンが2010年のようなのです。 現在、「QuickForm」のように簡単にフォームが作成できて、PHP: 5.3.8以上で使用しても Deprecated: Assigningメッセージがでない物を探しております。 ご教授おねがいします。

    • ベストアンサー
    • PHP
  • HTML_QuickForm_Renderer_ArraySmartyの動作について

    こんにちわ。 今SMARTYの勉強をしており、色々サンプルスクリプトを動かしたりしているのですが、PHPからHTML_QuickFormを動かす分には全く問題ないのですが(http://pear.php.net/manual/en/package.html.html-quickform.tutorial.phpのサンプルスクリプトは動作します)、テンプレート上で使おうと思うと動きません。SMARTYはインストールされていますし、HTML_QuickForm_Renderer_ArraySmartyの存在も確認しました。どこか設定する箇所があるのでしょうか?PEARとSMARTYの連携について書かれている書籍やサイトも少なく、苦戦しております。アドバイスの程よろしくお願いいたします。

    • 締切済み
    • PHP
  • PHP HTMLフォームの作成と取得の最適な方法について

    PHP HTMLフォームの作成と取得の最適な方法について PEARがどんどん発達していて、これを積極的に使うべきだと言われたのですが、掲題のHTMLフォームの作成と値の検証/取得については、HTML_QuickForm2を使うのが現時点では最適でしょうか?インストールまではできたのですが、利用にあたってのマニュアルのようなドキュメントがWEB上にあれば、教えていただけると嬉しいです。 恐れ入りますが、宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • smartyとHTML_QuickFormの連携

    いまさらながらですがsmartyとHTML_QuickFormの連携を勉強しようと 思いいろんなサイトを見てみたのですが応用の方法はみつかるものの 最初の設定に関する説明などがなかったので教えて下さい。 自分でやったことは以下の手順です。 1:Smarty-2.6.18を下記urlからダウンロード http://smarty.php.net/download.php 2:HTML_QuickForm-3.2.10を下記urlからダウンロード http://pear.php.net/package/HTML_QuickForm/ これ以上どのようにすればいいのかがわかりません・・・ HTML_QuickForm-3.2.10をどこのフォルダにいれればいいのか ファイルがこれだけで十分なのかすらわからない状態です^^; 使用するレンタルサーバーはsmarty使用可能なのですが使う場合は 自分でインストールしなければならないので最初にどのような ファイル構成でアップすればいいのかでつまづいております。 わかりづらい文章化とは思いますが是非ご教授下さい!

    • 締切済み
    • PHP
  • HTML_QUICKFORMのSELECTにデフォルト値設定したい

    pearライブラリのhtml_quickformを使ってフォームを作成しているのですが、どうもSELECT要素に対してデフォルト値の設定がうまくいきません。また、hierselectに対してのデフォルト値設定もうまくいかないので、そちらについてもわかりましたら、お教えください。 検証にはこちらのページのソースを少し変更して利用していましたが、 うまくいきません。テキスト要素に対してはデフォルト設定が利いているようですが、SELECT要素に対してはデフォルト値設定が利かないようです。 http://www.planewave.org/translations/quickform/html_quickform.html 以上となります。 どうぞよろしくお願いいたします

    • ベストアンサー
    • PHP
  • pearのパッケージについて

    いつもお世話になっています。 pearのインストールはできたのですが、使用できないクラス(ファイルが存在しないパッケージ)がかなりあるのですが、使用したいファイルが存在しない場合はどのようにしたらいいでしょうか? 使用したいファイルですが、HTML/QuickForm.phpです。 PEARファイルの確認をしたのですが、HTMLファイルの中にQuickForm.phpが存在しません。 インストールしたXAMPPバージョンは、1.7.1です。 OSは、Windowsを使用しています。 宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • QuickFormのradioボタンでエラーが出る

    require_once("HTML/QuickForm.php"); $form = new HTML_QuickForm(); $ques[] = &HTML_QuickForm::createElement('radio', null, 'Yes', 'Yes', '1');←”ここでエラーがでる” $ques[] = &HTML_QuickForm::createElement('radio', null, 'No', 'No', '2'); $form->addGroup($ques, 'ques'); $form->addRule('ques', '入力してください。', 'required', null, 'client'); if ($form->validate()){ $form->freeze();} $form->addElement('submit','submit', '送信'); require_once("HTML/QuickForm/Renderer/ArraySmarty.php"); $renderer= new HTML_QuickForm_Renderer_ArraySmarty($smarty); $form->accept($renderer); $smarty->assign('form', $renderer->toArray()); $file = 'test.tpl'; $smarty->display($file) ----------------------------------------------------------- HTML_QuickFormでラジオボタンをチェックしたいのですが、「←”ここでエラーがでる”」の部分で、Fatal error: [] operator not supported for strings in /virtual/パス/test.php on line 19←ここの数字はエラー行 のエラーがでます。 どうやったら、エラーを回避できるか分かりません。 よろしくお願いします。

    • 締切済み
    • PHP
  • HTML_QuickFormでの日本語の扱い・・・

    HTML_QuickFormで $form->addRule("name", "名前は10字以内でお願いします", "maxlength", 10, "client"); などと指定して フォームに「あいうえおかきくけこ」などと入力すると、 クライアント側では通るのですが、 どうやらvalidate(サーバー側?)でひっかかってしまうようなのですが・・・ どこに原因があるのでしょうか? どうか教えてください。

    • ベストアンサー
    • PHP
  • PEAR::HTML_QuickForm 確認から完了について

    PEAR::HTML_QuickFormの使い方として、入力→内容確認→完了のように画面が遷移させるのが一般的だと思っています。 確証(validate)後はどのようにコーディングすれば良いでしょうか。 例えば、よくあるサンプルでこのような書き方があります。 if($form->validate()) { $form->process("hoge"); } しかし、processメソッドは戻り値がないく使いづらいので、ユーザー定義関数に置き換えています。 また if($form->validate()) { $form->freeze(); echo $form->toHtml(); } のようなものも良く見ますが、HTML_QuickForm_Elementのメソッドを利用してもheader要素はいじれないようなのでこれまた使いづらい気がします。 subimitボタンなんかもDefaultRenddererのまんまだとテーブルの要素になってしまうようで、書き直したりして・・・。 結局、不細工なソースになってしまってなんだか釈然としません。 抽象的な質問でスミマセンが、入力後の確認から完了までの標準的な雛形があれば参考にしたいと考えています。

    • ベストアンサー
    • PHP
  • UTF-8の文字コードで作成したサイトに使用できるメールフォームを探し

    UTF-8の文字コードで作成したサイトに使用できるメールフォームを探しています。メールフォームのページ自体はHTMLで作成しているので、そのHTMLは出来れば利用したいんですが、どなたかちょうど良いCGIをご存知てしたら教えて下さい。

    • 締切済み
    • CGI

専門家に質問してみよう