Re: [請益] 請問有人有使用過smarty+pear[HTML_Qui …

看板PHP作者 (請勿忘記密碼)時間17年前 (2008/08/26 20:23), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《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
文章代碼(AID): #18i_MfVJ (PHP)
文章代碼(AID): #18i_MfVJ (PHP)