看板 PHP 關於我們 聯絡資訊
※ 引述《PTTLSboy (阿銫)》之銘言: : <select> : <? for($i=0;$i<$a;$i++){ ?> : <option> (略) </option> : <? } ?> : </select> : 要如何避免以上這種 HTML+PHP 混在一起的寫法呢??? : 因為有不得不用PHP跑迴圈+HTML或JAVASCRIPT的需求 : 感謝!! 寫成物件導向的方式如何,例如: class InputGenerator { static public function select($name, $value, $attr, $options) { $html = '<select name="' . $name . '">'; foreach($options as $key => $option) { $selected = ''; if ($value == $key) { $selected = 'selected'; } $html .= '<option value="' . $key . '" ' . $selected . '>'; $html .= $option; $html .= '</option>'; } $html .= '</select>'; return $html; } } 暫且略過$attr html屬性設定的參數 使用時只要 require class至頁面,然後如以下方式 InputGenerator::select('name', '1', null, $enums); 便可產生所需的下拉選單 不然就是使用framework 像是Zend Framework 的view helper 讓頁面也乾淨許多 且就不必常使用for迴圈產生元素 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.45.92
MOONRAKER:這明顯是完全不跟人配合,自己一個人做網站的寫法。我才 10/05 01:00
MOONRAKER:不要在php內產生HTML... 10/05 01:00
tanson:我想,就是因為是teamwork才更需要使用物件導向 10/05 01:16
tanson:當teamwork時,如果可以將code縮減,並讓人清楚的知道每個 10/05 01:18
tanson:物件的職責,不僅可以縮短project開發時間,日後也更好維護 10/05 01:19
tanson:M大不喜歡由php產生html的目的為何,願聞其詳 10/05 01:21
tanson:不要忘了ZF的view helper也是類似做法 10/05 01:23
tkdmaf:這叫濫用物件好嗎?物件不是拿來這樣搞的。 10/05 07:46
tkdmaf:如果你的SAMPLE CODE的內容是另外讀取HTML頁面的話。 10/05 07:47
tkdmaf:我認為那才會是正解。 10/05 07:47
B9: 這不算濫用物件啊,就只是個 static method 10/05 08:05
B9: 跟設計一個 input_generator_select 是一樣的東西 10/05 08:05
B9: static function 10/05 08:06
tkdmaf:我才不管他方法,而是他製造出一種困擾。 10/05 08:06
tkdmaf:事實上我連ci的input相關功能都很少用。 10/05 08:08
tkdmaf:在基於和網頁設計師的配合上 10/05 08:08
tkdmaf:讓他們看得懂HTML而不是製造看不同的功能比較重要。 10/05 08:09
B9: 所以你每次寫 html 都這樣嗎? http://pastebay.net/1149249 10/05 08:24
tkdmaf:類似!但我不能先做好htmlentities再放進陣列? 10/05 08:26
tkdmaf:還有剛剛洗澡我才想到,form相關的ci是寫成函式。 10/05 08:27
tkdmaf:而不是物件。 10/05 08:27
tkdmaf:乾乾淨淨的純html顯示是工程師能帶給網編人員的方便。 10/05 08:28
tkdmaf:而不是給他們感到困惑。 10/05 08:29
tkdmaf:除了必要重覆的php code,我絕少在view中做其他處置。 10/05 08:29
mervynW:我看到這種code我會叫過來念一頓. 要抓html&css問題還要 10/05 09:49
mervynW:到php code裡找,當大家太閒啊. 10/05 09:50
tkdmaf: ^^^^^^^^^^^^XD! 10/05 10:01
Gakun:其實我覺得困擾還好 只是在於整個團隊有沒有明確的文件規範 10/05 10:04
tkdmaf:但如果都是標準HTML顯示……不用文件規範吧。 10/05 10:11
tkdmaf:難不成他的HTML和我的HTML規則不一樣? 10/05 10:11
MOONRAKER:這種規範就是允許frontend來改我程式,我一定反彈。 10/05 11:17
tkdmaf:如果你的code是讓我無所適從,我會讓你看看砍掉重練的驕傲 10/05 12:02
mervynW:我跟frontend討論過, 他們不愛temp的迴圈 10/05 12:08
tkdmaf:不愛的話就把迴圈放回controller或是model來處理。 10/05 12:24
tkdmaf:變成只剩下變數顯示的純view了。 10/05 12:24
tanson:這樣的話跟我的InputGenerator物件差別在哪= =? 10/05 12:38
mervynW:不,傳json給forntend, 他們用js組 10/05 13:04
tkdmaf:嗯!用js組的好處就是迴圈不吃伺服器資源吧! 10/05 13:31
mervynW:還有User看到畫面快,雖然沒有內容 10/05 14:04