
こんにちわ。
今SMARTYの勉強をしており、色々サンプルスクリプトを動かしたりしているのですが、PHPからHTML_QuickFormを動かす分には全く問題ないのですが(http://pear.php.net/manual/en/package.html.html- …のサンプルスクリプトは動作します)、テンプレート上で使おうと思うと動きません。SMARTYはインストールされていますし、HTML_QuickForm_Renderer_ArraySmartyの存在も確認しました。どこか設定する箇所があるのでしょうか?PEARとSMARTYの連携について書かれている書籍やサイトも少なく、苦戦しております。アドバイスの程よろしくお願いいたします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
>$form = new HTML_QuickForm();
>$form->addElement('text','name','Name');
>$renderer =& new HTML_QuickForm_Renderer_ArraySmarty($smarty);
>$form->accept($renderer);
>$smarty->assign('form',$renderer->toArray());
>$smarty = new Smarty();
>$smarty->display("2.tpl");
>?>
上記のプログラムでは、Smartyのインスタンス生成し、
HTML_QuickForm_Renderer_ArraySmartyに渡す
タイミングがおかしいのではないでしょうか?
$smarty = new Smarty();
HTML_QuickForm_Renderer_ArraySmarty($smarty);
$form->accept($renderer);
$smarty->assign('form',$renderer->toArray());
$smarty->display("2.tpl");
No.2
- 回答日時:
もう解決してると思いますが。
$renderer =& new HTML_QuickForm_Renderer_ArraySmarty($smarty);
の$smartyはSmartyのインスタンスなので
先にインスタンスを生成しておく必要があります。
require_once 'HTML/QuickForm.php';
require_once 'HTML/QuickForm/Renderer/ArraySmarty.php';
require_once 'Smarty.class.php';
$smarty = new Smarty();
$form = new HTML_QuickForm();
$form->addElement('text','name','Name');
$renderer =& new HTML_QuickForm_Renderer_ArraySmarty($smarty);
$form->accept($renderer);
$smarty->assign('form',$renderer->toArray());
$smarty->display("2.tpl");
No.1
- 回答日時:
どう動かないのか分かりませんが。
--- PHP ---
$form = new HTML_QuickForm();
$form->addElement('text','name','Name');
$renderer =& new HTML_QuickForm_Renderer_ArraySmarty($smarty);
$form->accept($renderer);
$smarty->assign('form',$renderer->toArray());
--- Smarty ---
{$form.name.html}
参考URL:http://www.is.titech.ac.jp/~yanagis0/kei/quickfo …
この回答への補足
早速の回答ありがとうございます。
ちょうど参考URLのスクリプトで試していたところでした。http://pear.php.net/manual/en/package.html.html- …の「Your first form」は動作しますので、HTML_QuickFormは問題ないのです。ですが、参考URLの「SMARTYとの連携」の部分がダメなんです。
回答頂きましたスクリプトを試してみたのですが、
-----2.php-----
<?php
require_once 'HTML/QuickForm.php';
require_once 'HTML/QuickForm/Renderer/ArraySmarty.php';
require_once 'Smarty.class.php';
$form = new HTML_QuickForm();
$form->addElement('text','name','Name');
$renderer =& new HTML_QuickForm_Renderer_ArraySmarty($smarty);
$form->accept($renderer);
$smarty->assign('form',$renderer->toArray());
$smarty = new Smarty();
$smarty->display("2.tpl");
?>
-----2.php-----
<html>
<head>
<title>TEST</title>
</head>
<body>
{$form.name.html}
</body>
</html>
どうもテンプレートすら呼び出していないようです。「$form = new HTML_QuickForm();」~「$smarty->assign('form',$renderer->toArray());」をコメントアウトしたら、テンプレートを呼び出しました。これは一体どういうことなのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
リンク先のフォームに自動的に...
-
テキストリンクをPOST送信したい
-
PHPでファイルアップロード時に...
-
wordpress環境でのお問い合わせ...
-
プルダウンリンクを外部ファイ...
-
scanfでの読み込み文字数制限
-
laravelを利用してコントロール...
-
「"」(ダブルクォーテーション)...
-
Flaskでサーバー立ち上げに関して
-
HTMLで前の画面に戻る時、入力...
-
セレクトしたときに全て初期状...
-
PHPで画像の渡しが上手く行きま...
-
コンボボックス(プルダウン)...
-
PHP プルダウンメニュー MYSQL
-
ドロップダウン、ラジオボタン...
-
PHP で画面の一部だけを変えたい。
-
適性診断テストみたいなものを...
-
【PHPチェック】ラジオボタンが...
-
検索時の選択内容を保持する方法
-
phpのプルダウンメニューで選ん...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストリンクをPOST送信したい
-
ボタンをクリックでPHP文を実行
-
$_POST['hoge']のデータをフラ...
-
PHPのエラーの解消法について教...
-
phpで、フォームのラジオボタン...
-
フォームのPOST情報が渡らない?
-
PHPでバーコード読み取りって・...
-
セッションを使わずに遷移先画...
-
なぜ、unexpected T_VARIABLEに...
-
アマゾンのような評価の星を選...
-
PHPで検索結果の一覧から任意の...
-
サブウィンドウのFORM内データ...
-
フォーム送信後の更新ボタンで...
-
入力ホーム form actionでphpペ...
-
PHP 入力フォームにて半角スペ...
-
PHPの質問:フォームから受け取...
-
PHPでURLにジャンプするには?
-
フォームにダブルクォーテーシ...
-
チェックボックスのチェック済...
-
ユーザー認証&リンク先振り分け
おすすめ情報