Re: [請益] 請問有人有使用過smarty+pear[HTML_Qui …
※ 引述《ihy08 (ihy08)》之銘言:
: ※ 引述《MrMarcus (請勿忘記密碼)》之銘言:
: : Smarty和HTML_QuickForm這兩項我剛好都滿常使用的,也經常組合使用。
: : HTML_QuickForm有提供搭配Smarty使用的renderer。大致上的用法會像這樣:
: : form.php:
: : <?php
: : $smarty = new Smarty();
: : $form =& new HTML_QuickForm("myform", "post", "form.php");
: : $form->addElement("text", "email", "Your email");
: : $form->addRule(.........);
: : if($form->validate()) {
: : // 表單資料驗證通過,儲存表單資料
: : ....
: : // 輸出感謝頁畫面
: : $smarty->display("thanks.html");
: : exit;
: : }
: : // 沒有接收到正確的表單資料,輸出表單頁面
: : $renderer =& new HTML_QuickForm_Renderer_ArraySmarty($smarty, TRUE);
: : $form->accept($renderer);
: : $smarty->assign("form", $renderer->toArray());
: : $smarty->display("form.html");
: : ?>
: : form.html :
: : {$form.javascript}
: : <form {$form.attributes}>
: : {$form.hidden}
: : Email : {$form.email.html}
: : <input type="submit" />
: : </form>
: 有幾個問題想再請教前輩。
: 1.{$form.javascript}
: 這行的用意、作用是什麼?
這行會輸出在瀏覽器端驗證這個表單資料所需的JavaScript程式碼。
: 2.{$form.hidden}
: 這行的意思是什麼?作用是什麼?
這行會輸出這個表單內含的隱藏欄位的HTML。
: 3.HTML_QuickForm所產生的表單是不是要寫在這兩個之間
: <form {$form.attributes}>
{$form.attributes} 會被替換成表單的<form>標籤所需要用到的屬性,
因此是寫成<form {$form.attributes}>的形式,實際上輸出的樣子會是類似
<form action="form.php" method="post"...... >
: </form>
表單欄位當然是要放在<form></form>之間沒錯。
: 4.表單呈現
: {$form.email.html}
: {$form.email.label}
: 除了.html .label之外還有其他的可以用嗎?
你可以使用print_r()來看看裡面有哪些東西可用。
$renderer =& new HTML_QuickForm_Renderer_ArraySmarty($smarty, TRUE);
$form->accept($renderer);
$form_array = $renderer->toArray();
print_r($form_array); // http://tw.php.net/print_r
$smarty->assign("form", $form_array);
$smarty->display("form.html");
: 謝謝!^^
:)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.64.235
推
08/26 22:33, , 1F
08/26 22:33, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章