看板 PHP 關於我們 聯絡資訊
※ 引述《spong (請輸入ID)》之銘言: : 如果SQL中有商品相關資訊,如:規格、描述...等,要將產品資訊,塞到html中自己設計的 : 卡片區塊(div),需要重複建立卡片區塊在,在塞入資料?還是可以在php中先連上資料庫 : ,用for迴圈建立卡片區塊,這樣畫面沒有css、bootstrap的輔助,顯示出來的網頁會不會 : 很醜,還是可以在php中引入css、bootstrape : 剛學沒多久,還請鞭小力一點 基本上比較複雜的網站都是像前面推文說的一樣都是MVC架構。 這裡用一個簡單的單頁程式來作例子看怎樣把php和前端語法結合在一起。 ------------ <?php /* 這裡開始撈資料,內容就省略。一般來說MVC架構會在這裡把來自model的資料讀出來 而非在這裡直接讀資料庫。但這裡為了簡潔,假設我們在這裡讀資料庫的內容。 */ // 把資料存成在陣列裡面,等等取用。為了簡潔,這裡就不考慮其他處理或跳脫。 $products = $mysqli->fetch_all(MYSQLI_ASSOC); ?> <html> <head> <!--內容省略--> </head> <body> <table class="table"> <!-- 你可以把php語法包在小的<?php ?>裡面,這樣就不會跟HTML混在一起 --> <?php foreach($products as $product): ?> <!-- 現在你在迴圈內了,這裡面的HTML語法都會跟著迴圈重複 --> <tr> <!--你可以使用<?=?>來當作縮短版的echo來使用--> <td> <?=$product["product_name"]?> </td> <td> <!--if的道理也是一樣--> <?php if(!$product['qty']): ?> <!--PHP語法以外你要怎樣套用CSS、bootstrap都可以--> <span class="badge badge-danger">無庫存</span> <?php endif; ?> </td> </tr> <!-- 沒有用括弧記得要用endforeach關閉迴圈 --> <?php endforeach; ?> </talbe> </body> </html> -------------------------- 這樣一來你就可以把HTML語法跟PHP結合在一起,渲染各種CSS格式等等。也不會把所有 的HTML語法塞在echo裡面,讓程式更加可讀。 當然這是非常簡單的版本,讓你了解怎樣把PHP的結果用前端語言渲染出來。總有一天 你學得深了,或是有真正實務上的需求了,就會知道上面範例不是真正良好的示範,但 那是後話了。 希望這樣對你有幫助。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 70.71.184.148 (加拿大) ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1606950928.A.1E4.html ※ 編輯: bakedgrass (50.67.17.136 加拿大), 12/03/2020 13:08:16
powyo: 這寫法也太古老了吧 12/04 10:51
gpmm: 推一個熱心分享 12/05 23:33
GALINE: 與其說古老,我覺得更像是讓PHP做原本設計的任務:樣版引擎 12/08 11:06
newversion: <?= 這寫法要小心用。 short open tag 不一定開 12/09 04:21
bakedgrass: 謝謝大家的回饋 12/09 11:27
bakedgrass: <?= 在官方文件裡面好像是被歸類成normal tag 12/09 11:28
bakedgrass: https://tinyurl.com/yxuxhs68 12/09 11:28
newversion: 5.4.0 後才改的, 避免踩雷盡量不要用 12/10 00:45
bakedgrass: 謝謝建議 12/10 05:42
bakedgrass: 我有看過一些相關的爭議,也有人覺得可以放心使用。但 12/10 05:43
bakedgrass: 我會記得你的建議 12/10 05:43
mohai: PHP 全銜不是超文字預處理器嗎?這樣寫到底哪裡古老了 12/11 12:06
Kenqr: 5.3是11年前的版本 就算真的需要支援還是可以從設定開啟 12/13 20:27
Kenqr: 所以這寫法是很安全的 12/13 20:27
Dinjang: 可以用 PHP7以下的都該升了 12/14 14:58
MangoTW: 古老嗎 可以去瞭解一下 Personal Home Page 問世的意義 02/21 18:35