Lab 5: Danh Sách và Thêm Sản Phẩm (#LTHĐT)

Trang chủ Blog LẬP TRÌNH PHP Lab 5: Danh Sách và Thêm Sản Phẩm (#LTHĐT)
Lab 5: Danh Sách và Thêm Sản Phẩm (#LTHĐT)

Tạo file index.php tại thư mục gốc, thêm nội dung như sau:

<?php 
include_once("header.php");
?>
<ul>
	<li>
		<a href="product-list.php">Danh sách sản phẩm</a>
	</li>
	<li>
		<a href="product-add.php">Thêm sản phẩm</a>
	</li>
</ul>
<?php
include_once("footer.php");
?>

include_once là hàm để copy code từ file được truyền vào, và chỉ được truyền 1 lần

Mở browser để kiểm tra với đường dẫn: http://localhost/tên-project

Tạo trang thêm sản phẩm
– Tại thư mục gốc thêm file đặt tên product-add.php với nội dung:

<?php 
require_once("entities/product.class.php");
require_once('entities/category.class.php');

if(isset($_POST["btnsubmit"])){
	//Lấy giá trị từ form
	$productName = $_POST["txtname"];
	$cateID = $_POST["txtcateid"];
	$price = $_POST["txtprice"];
	$quantity = $_POST["txtquantity"];
	$description = $_POST["txtdesc"];
	$picture = $_FILES["txtpic"];
	//Khởi tạo đối tượng product
	$newProduct = new  Product($productName, $cateID, $price, $quantity, $description, $picture);
	// Lưu xuống CSDL
	$result = $newProduct -> save();
	if(!$result){
		//Truy vấn lỗi
		header("Location: product-add.php?status=failure");
	}else{
		header("Location: product-add.php?status=inserted");
	}
}
?>
<?php require 'header.php'; ?>
<?php
	if(isset($_GET["status"])){
		if ($_GET["status"] == 'inserted') {
			echo "<h2>Thêm sản phẩm thành công.</h2>";
		}else{
			echo "<h2>Thêm sản phẩm thất bại.</h2>";	
		}
	}
?>
	<!-- Form Thêm sản phẩm -->
	<form method="post">
		<!-- Tên sản phẩm -->
		<div class="row">
			<div class="lbltitle">
				<label>Tên sản phẩm</label>
			</div>
			<div class="lblinput">
				<input type="text" name="txtname" value="<?php echo isset($_POST["txtname"]) ? $_POST["txtname"] : "" ?>">
			</div>
		</div>
		<!-- Mô tả sản phẩm -->
		<div class="row">
			<div class="lbltitle">
				<label>Mô tả sản phẩm</label>
			</div>
			<div class="lblinput">
				<textarea type="text" name="txtdesc" cols="21" rows="10" value="<?php echo isset($_POST["txtdesc"]) ? $_POST["txtdesc"] : "" ?>"></textarea>
			</div>
		</div>
		<!-- Số lượng sản phẩm -->
		<div class="row">
			<div class="lbltitle">
				<label>Số lượng sản phẩm</label>
			</div>
			<div class="lblinput">
				<input type="number" name="txtquantity" value="<?php echo isset($_POST["txtquantity"]) ? $_POST["txtquantity"] : "" ?>">
			</div>
		</div>
		<!-- Giá sản phẩm -->
		<div class="row">
			<div class="lbltitle">
				<label>Giá sản phẩm</label>
			</div>
			<div class="lblinput">
				<input type="number" name="txtprice" value="<?php echo isset($_POST["txtprice"]) ? $_POST["txtprice"] : "" ?>">
			</div>
		</div>
		<!-- Loại sản phẩm -->
		<div class="row">
			<div class="lbltitle">
				<label>Loại sản phẩm</label>
			</div>
			<div class="lblinput">
				<select name="txtcateid">
					<option value="" selected>-- Chọn loại --</option>
					<?php $cates = Category::list_category() ?>
					<?php 	foreach ($cates as $item) { ?>
					<option value="<?php echo $item['CateID'] ?>"><?php echo $item['CategoryName'] ?></option>
					<?php } ?>
				</select>
				<!-- <input type="number" name="txtcateid" value="<?php echo isset($_POST["txtcateid"]) ? $_POST["txtcateid"] : "" ?>"> -->
			</div>
		</div>
		<!-- Loại sản phẩm -->
		<div class="row">
			<div class="lbltitle">
				<label>Url Hình ảnh</label>
			</div>
			<div class="lblinput">
				<input type="file" name="txtpic" accept=".PNG,.GIF,.JPG,.JPGEG">
			</div>
		</div>
		<div class="row">
			<div class="lbltitle">
				   Click thêm
			</div>
			<div class="submit">
				<button type="submit" name="btnsubmit">Thêm sản phẩm</button>
			</div>
		</div>
	</form>

<!-- Footer -->
<?php require 'footer.php'; ?>

Hàm isset() để kiểm tra sự tồn tại của biến truyền vào. Sử dụng rất nhiều trong lập trình PHP.

Xem thử có lỗi gì xảy ra không?

Đường dẫn: http://localhost/tên-project/product-add.php

Tạo trang danh sách sản phẩm
– Tại thư mục gốc thêm file đặt tên product-list.php với nội dung:

<?php 
require_once('entities/product.class.php');
?>
<?php 
include_once('header.php');
$prods = Product::list_product();
?>
<div class="container">
	<div class="row">
		<div class="col-md-12">
			<table border="1" class="table">
				<tr>
					<td>Hình</td>
					<td>Tên SP</td>
					<td>Loại</td>
					<td>Giá</td>
					<td>Số lượng</td>
					<td>Mô tả</td>
				</tr>
				<?php 
					foreach ($prods as $item) {
				?>
				<tr>
					<td><?php echo $item['Picture']?></td>
					<td><?php echo $item['ProductName']?></td>
					<td><?php echo $item['CateID']?></td>
					<td><?php echo $item['Price']?></td>
					<td><?php echo $item['Quantity']?></td>
					<td><?php echo $item['Description']?></td>
				</tr>
				<?php } ?>
			</table>
		</div>	
	</div>
</div>

<?php 
include_once('footer.php');
?>

Biến $item[‘key’] là mảng được trả về của function select_to_array() trong class Db
Lưu ý: ‘key’ 
là tên của cột trong bảng product, trong một mảng có 2 phần tử là keyvalue

Đường dẫn: http://localhost/tên-project/product-list.php
hoặc click: Danh sách sản phẩm ngoài trang chủ

Như vậy là bạn đã hoàn thành 2 chức năng Thêm Sản PhẩmDanh Sách Sản Phẩm.