HTML แบบไดนามิกด้วยลูป PHP
สร้างตารางและรายการ HTML จากอาร์เรย์ PHP ภายในเทมเพลต
HTML แบบไดนามิกด้วยลูป PHP เป็นบทเรียน PHP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน PHP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน
การสร้าง HTML ด้วย PHP
หนึ่งในการใช้งาน PHP ที่ทรงพลังที่สุดคือการสร้าง HTML แบบไดนามิกจากอาร์เรย์ข้อมูล เช่น รายการ ตาราง เมนูแบบเลื่อนลง เมนูนำทาง และอื่น ๆ
การสร้างรายการ
เรนเดอร์รายการ HTML แบบไม่มีลำดับจากอาร์เรย์ PHP:
<?php
$fruits = ['Apple', 'Banana', 'Cherry', 'Durian'];
?>
<ul>
<?php foreach ($fruits as $fruit): ?>
<li><?= htmlspecialchars($fruit) ?></li>
<?php endforeach; ?>
</ul>การสร้างตาราง HTML
สร้างตารางแบบไดนามิกจากอาร์เรย์สองมิติ:
<?php
$users = [
['Alice', 'alice@test.com', 'Admin'],
['Bob', 'bob@test.com', 'User'],
];
?>
<table>
<thead><tr><th>Name</th><th>Email</th><th>Role</th></tr></thead>
<tbody>
<?php foreach ($users as [$name, $email, $role]): ?>
<tr>
<td><?= htmlspecialchars($name) ?></td>
<td><?= htmlspecialchars($email) ?></td>
<td><?= htmlspecialchars($role) ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>การสร้างเมนูแบบเลือก
สร้างองค์ประกอบ select ของ HTML จากอาร์เรย์:
<?php
$countries = ['TR' => 'Turkey', 'US' => 'United States', 'DE' => 'Germany'];
$selected = 'TR';
?>
<select name="country">
<?php foreach ($countries as $code => $name): ?>
<option value="<?= htmlspecialchars($code) ?>"
<?= $code === $selected ? 'selected' : '' ?>>
<?= htmlspecialchars($name) ?>
</option>
<?php endforeach; ?>
</select>การสลับสีแถวแบบม้าลาย
ใช้รูปแบบแถวสลับกันเพื่อให้อ่านได้ง่ายขึ้น:
<?php
$rows = range(1, 8);
?>
<table>
<?php foreach ($rows as $i => $row): ?>
<tr class="<?= $i % 2 === 0 ? 'even' : 'odd' ?>">
<td>Row <?= $row ?></td>
</tr>
<?php endforeach; ?>
</table>คลาส CSS แบบมีเงื่อนไข
ใช้คลาส CSS ตามเงื่อนไขของข้อมูล:
<?php
$tasks = [
['title' => 'Write tests', 'done' => true],
['title' => 'Deploy app', 'done' => false],
];
?>
<ul class="task-list">
<?php foreach ($tasks as $task): ?>
<li class="task <?= $task['done'] ? 'done' : 'pending' ?>">
<?= htmlspecialchars($task['title']) ?>
</li>
<?php endforeach; ?>
</ul>ลิงก์แบ่งหน้า
สร้างส่วนติดต่อผู้ใช้สำหรับการแบ่งหน้าจากลูป for:
<?php
$totalPages = 10;
$currentPage = 3;
?>
<nav class="pagination">
<?php for ($p = 1; $p <= $totalPages; $p++): ?>
<a href="?page=<?= $p ?>"
class="<?= $p === $currentPage ? 'active' : '' ?>">
<?= $p ?>
</a>
<?php endfor; ?>
</nav>ลูปซ้อนสำหรับ HTML แบบซ้อน
สร้างโครงสร้าง HTML แบบซ้อนด้วยลูปซ้อน:
<?php
$menu = [
['Home', '/', []],
['Products', '/products', ['Widgets', 'Gadgets']],
['About', '/about', []],
];
?>
<ul>
<?php foreach ($menu as [$label, $href, $sub]): ?>
<li><a href="<?= $href ?>"><?= htmlspecialchars($label) ?></a>
<?php if ($sub): ?>
<ul>
<?php foreach ($sub as $child): ?>
<li><?= htmlspecialchars($child) ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>การจัดการสถานะว่าง
จัดการกรณีอาร์เรย์ว่างในแม่แบบเสมอ:
<?php
$posts = [];
?>
<?php if (!empty($posts)): ?>
<ul>
<?php foreach ($posts as $post): ?>
<li><?= htmlspecialchars($post['title']) ?></li>
<?php endforeach; ?>
</ul>
<?php else: ?>
<p class="empty-state">No posts found. <a href="/new">Create one!</a></p>
<?php endif; ?>การสร้างแอตทริบิวต์ข้อมูล
ส่งข้อมูลไปยัง JavaScript ผ่านแอตทริบิวต์ข้อมูลของ HTML:
<?php
$products = [
['id' => 1, 'name' => 'Widget', 'price' => 9.99],
['id' => 2, 'name' => 'Gadget', 'price' => 24.99],
];
?>
<div class="product-grid">
<?php foreach ($products as $p): ?>
<div class="product-card"
data-id="<?= $p['id'] ?>"
data-price="<?= $p['price'] ?>">
<?= htmlspecialchars($p['name']) ?>
</div>
<?php endforeach; ?>
</div>PHP และ JSON สำหรับ JavaScript
ส่งอาร์เรย์ PHP ไปยัง JavaScript อย่างปลอดภัยด้วย json_encode:
<?php
$config = [
'apiUrl' => '/api/v1',
'userId' => $user['id'] ?? 0,
'locale' => 'en-US',
];
?>
<script>
const APP_CONFIG = <?= json_encode($config, JSON_HEX_TAG | JSON_HEX_APOS) ?>;
console.log(APP_CONFIG.apiUrl);
</script>ตรวจสอบความเข้าใจ
เมื่อต้องส่งออกสตริงที่ผู้ใช้ควบคุมภายใน HTML เพื่อป้องกัน XSS ต้องใช้ฟังก์ชันใด
ทบทวน: HTML แบบไดนามิกด้วยลูป
เทคนิคสำคัญ:
- ใช้ไวยากรณ์ foreach/for แบบทางเลือกที่มีเครื่องหมายโคลอนในแม่แบบ
- หลีกเลี่ยงอักขระของผลลัพธ์เสมอด้วย
htmlspecialchars() - ใช้คลาส CSS แบบมีเงื่อนไขด้วยตัวดำเนินการสามส่วนในแอตทริบิวต์
- จัดการอาร์เรย์ว่างด้วย if/else ที่ครอบลูป
- ส่งข้อมูล PHP ไปยัง JavaScript ผ่าน
json_encode()
คำถามที่พบบ่อย
บทเรียน “HTML แบบไดนามิกด้วยลูป PHP” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “HTML แบบไดนามิกด้วยลูป PHP” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส PHP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “HTML แบบไดนามิกด้วยลูป PHP”
สร้างตารางและรายการ HTML จากอาร์เรย์ PHP ภายในเทมเพลต คุณปฏิบัติ PHP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน PHP Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน PHP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “HTML แบบไดนามิกด้วยลูป PHP” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน PHP Academy นี้ได้ไหม
ได้ บทเรียน PHP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- แท็ก PHP และไวยากรณ์การฝังโค้ด
- HTML แบบไดนามิกด้วยลูป PHP
- การรวมและเรียกใช้ไฟล์
- รูปแบบเทมเพลต: แยกตรรกะออกจากมุมมอง