Hỏi - Đáp

Giáo viên trả lời:
Tôi xem thử tran trang của Bạn thì thấy có một số lỗi thiết kế sau:


1. Phần bảng đồ Google Map Bạn đang dùng script cũ, và chưa đăng ký key API nên nó sẽ không chạy. Chỗ này bạn có thể chỉnh lại như sau:

Chỗ đoạn này
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false&language=vi"></script>

Bạn thay bằng

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCFAPqJ3jRjW_5w8G1zcUfRTohZ6e2ikOg"></script>

Bạn có thể vào Google đăng ký API key khác thế vào hoặc dùng luôn key này cũng được.

Còn phần menu trên di động không hiện ra khi tôi kiểm tra thì thấy cólỗi như sau:

Trong trang có 2 đoạn script chỉ tới các tập tin javascript dùng để hiện menu: jquery.min.js, flatmenu-responsive.js

<script type="text/javascript" src="http://maxiren.com/scripts/jquery.min.js"></script>
<script type="text/javascript" src="http://maxiren.com/scripts/flatmenu-responsive.js"></script>

Nhưng trên hosting của Bạn hình như chưa upload thư mục scripts này lên.

Bạn có thể Bấm Ctrl +U vào code để xem và khi click vào đường dẫn của 2 tập tin này thì không thấy mở lên được 2 tập tin này chứng tỏ trên hosting chưa có các tập tin này hoặc đường dẫn tới 2 tập tin này bị sai.


Giáo viên trả lời:
Hãy upload source website lên hosting thực thì xem video Youtube mới được, còn chạy ở local thì sẽ bị lỗi này.

Giáo viên trả lời:
Hosting share hay VPS đều giống nhau ch3 khác chỗ VPS dung lượng nhiều và chạy nhanh hơn thôi. Về cấu hình thì cũng như nhau

Lỗi này có thể làdo việc backup file về bị thiếu file. Hãy vào hosting vào trong Cpanel chỗ mục Backup tải nguyên cả website về và cả database về luôn. Sau đó giả nén ra upload lại lên VPS, khai báo lại database và các chuỗi kết nối database.

Giáo viên trả lời:
Upload File dùngđể upload các tập tin khác hình như: doc, pdf, mp4, rar, zip vvv

Còn Upload and Resize Image dùng để upload hình ảnh và chỉnh lại kích thước hình khi upload.

Giáo viên trả lời:
Do nó là private nên không truy xuất từ class con

Giáo viên trả lời:

<nav class="nav-1">
<a class="link-1" href="#">Trang chu</a>
<a class="link-1" href="#">Gioi thieu</a>
<a class="link-1" href="#">San pham</a>
<a class="link-1" href="#">Lien he</a>
<a class="link-1" href="#">Tim kiem</a>
<a class="link-1" href="#">Dang nhap</a>
</nav>

==========================

Loại menu này là 1 cấp, muốn tạo menu nhiều cấp thì ta phải dùng các script mạnh hơn, trong các bài học tiếp theo sẽ có rất nhiều video hướng dẫn tạo menuđa cấp. Trước tiên hãy tập tạo menu 1 cấp trước

Giáo viên trả lời:
bảng loguser có cấ trúc tương tự như bảng này bao gồm các trướng sau:

ID_loguser kiểu dữ liệu là Integer và là khoá chính
ID_thanhvien int là khoá ngoại
Ipuser : varchar (40) lưu IP Address của user
datetimeout: kiêu datetime -> lưu ngày giờ user logout
datetimein kiểu datetime -> lưu ngày giờ user login
sessionloguser varchar(255): lưu phiên đăng nhập của user

Giáo viên trả lời:
Recordset giống như một Table dùng để chứa dữ liệu thôi, nó sẽ chứa dữ liệu tạm từ table trong database.

Giáo viên trả lời:
Muốn sử dụng Google Map thì phải đăng ký API key của Google Map, sau đó chèn API key này vào thì mới hiện được.

Đã đăng ký API key chưa ?

Giáo viên trả lời:
Trong lệnh Dependent Dropdown trong tab Server Behavior, mở lên,

Tab Relation:
Master Filed ; chọnID_theloai
Detail Filed: chọn ID_theloaitin

Tab Dynamic
Recordset: rs_theloaitin (Recordset lấy ra danh mục tin cấp 2)
Primary Key: ID_theloaitin (khoá chính của bảng theloaitin
Foriegn Key: ID_theloai
Get Label From: tentheloaitin
Default Value: Click dấu sấm chớp , chọn Recordset rstintuc -> chọn trường ID_theloaitin

Giáo viên trả lời:
dinh do rong cho bang


Trong trang list chỗ thẻ <style> </style> chỗ width sử dụng đơn vị 100%, không dùng pixel
Chọn Table trong trang List, width chỉnh là 99% (không dùng đơn vị pixel)

Giáo viên trả lời:
data-toggle được sử dụng trong rất nhiều trong bootstrap chủ yếu dùng để chuyển đổi trạng thái của dữ liệu.


Ví dụ thuộc tính này hỗ trợ chúng ta về hiệu ứng khi click vào dropdown menu.  
Trong bootstrap khi ta làm một menu dropdown thì sau khi thiết kế xong menu dropdown ta phải dùng thuộc tính data-tooggle để kích hoạt dropdown menu này để nó xổ xuống

data-placement có thể dùng để định nghĩa vị trí hiển thị của đối tượng. Ví dụ khi ta tạo tooltip, khi ta muốn định vị trí xuất hiện của tooltip thì ta có thể sử dụng thuộc tính này.

Xem thêm ví dụ tại đây:

https://www.w3schools.com/bootstrap/tryit.asp?filename=trybs_tooltip_pos&stacked=h

role chủ yếu thường được dùng để đánh dấu chức năng của nội dung được cung cấp và vai trò là để mô tả mục đích mà bạn sử dụng phần tử đó.

Ví dụ

role="form" -> chỗ này mô tả ta đang tạo Form
role="menu" -> chổ này môtả ta đang tạo menu
role="button" -> chỗ này mô tả ta đang tạo nút
role="banner" -> chỗ này mô tả ta đang tạo banner


Giáo viên trả lời:
Thuộc tính CSS position dùng để định vị trí cho các đối tượng trong trang web mà không làm ảnh hưởng đến các phần tử khác.

Thuộc tính position này có các giá trị như: static, relative, absolute, fixed, inherit

Mặc định thuộc tính là static. 
Ví dụ ta có 4 thẻ div nằm theo thứ tự từ trên xuống như sau và các thẻ này đều dùng thuộc tính position là static thì nó sẽ sắp xếp theo thứ tự từ trên xuống dưới như đã thiết kế

<div>
<div style="border: 1px solid red; margin: 10px 0px 10px 0px; padding: 10px; position: static; width: 85%;">Box 1</div>
<div style="border: 1px solid green; margin: 10px 0px 10px 0px; padding: 10px; position: static; width: 85%;">Box 2</div>
<div style="border: 1px solid lime; left: 15px; margin: 10px 0px 10px 0px; padding: 10px; position: static; top: 15px; width: 85%;">Box 3</div>
<div style="border: 1px solid aqua; margin: 10px 0px 10px 0px; padding: 10px; position: static; width: 85%;">Box 4</div>
</div>

CSS Position

Ví dụ box1,box2,box4 có position là static còn box3 là relative thì box3 sẽ lấy box2 làm mốc.

<div>
<div style="border: 1px solid red; margin: 10px 0px 10px 0px; padding: 10px; position: static; width: 85%;">Box 1</div>
<div style="border: 1px solid green; margin: 10px 0px 10px 0px; padding: 10px; position: static; width: 85%;">Box 2</div>
<div style="border: 1px solid lime; left: 15px; margin: 10px 0px 10px 0px; padding: 10px; position:relative; top: 15px; width: 85%;">Box 3</div>
<div style="border: 1px solid aqua; margin: 10px 0px 10px 0px; padding: 10px; position: static; width: 85%;">Box 4</div>
</div>

Khi sử dụng relative, nó sẽ lấy điểm mốc của hộp là thẻ liền kề nhất với nó, bao gồm các thẻ bên trên, bên dưới và bao quanh.
Khi dùng relative ta thường phải dùng thêm các thuộc tính khác là top, left, right hoặc bottom để lấy vị trí.
Trong ví dụ box3 có giá trị top và left là 15px do đó box3 sẽ cách top so với box2 là 10px và cách lề trái là 10px


Còn nếu posion là absolute nó sẽ lấy thẻ body làm mốc tức tính môc từ góc trên cùng bên trái của trang web.

<body>
<div>
<div style="border: 1px solid red; margin: 10px 0px 10px 0px; padding: 10px; position: static; width: 85%;">Box 1</div>
<div style="border: 1px solid green; margin: 10px 0px 10px 0px; padding: 10px; position: static; width: 85%;">Box 2</div>
<div style="border: 1px solid lime; left: 15px; margin: 10px 0px 10px 0px; padding: 10px; position:absolute; top: 15px; width: 85%;">Box 3</div>
<div style="border: 1px solid aqua; margin: 10px 0px 10px 0px; padding: 10px; position: static; width: 85%;">Box 4</div>
</div>
</body>

CSS absolute
Ta nhận thấy box3 màu xanh lá cây bay giờ cách top và left là 15px tính từ góc trên bên trái bắt đầu phần body của trang web.

Nhưng nếu 4 box này lại bị bao quanh bởi 1 thẻ div lồng bên ngoài và thẻ div lồng ở bên ngoài có position là relative thì box3 sẽ lấy vị trí của div bao quanh đó làm mốc

<div style="border: 1px solid black; margin-top:100px; position:relative">
<div style="border: 1px solid red; margin: 10px 0px 10px 0px; padding: 10px; position: static; width: 85%;">Box 1</div>
<div style="border: 1px solid green; margin: 10px 0px 10px 0px; padding: 10px; position: static; width: 85%;">Box 2</div>
<div style="border: 1px solid lime; left: 15px; margin: 10px 0px 10px 0px; padding: 10px; position:absolute; top: 15px; width: 85%;">Box 3</div>
<div style="border: 1px solid aqua; margin: 10px 0px 10px 0px; padding: 10px; position: static; width: 85%;">Box 4</div>
</div>

CSS relative

Ta nhận thấy trong trường hợp này box3 màu xanh lá cây sẽ lấy box màu đen bao quanh bên ngoài làm mốc vì trong trường hợp này box màu đen là box cha có thuộc tính position là relative

Trường hợp nếu position là fixed thì cũng gần giống với absolute chỉ khác là nó sẽ lấy mốc là trình duyệt web (trong khi absolute thì lấy mốc là bắt đầu phần body của trang web)

<div style="margin-top:100px;">
<div style="border: 1px solid red; margin: 10px 0px 10px 0px; padding: 10px; position: static; width: 85%;">Box 1</div>
<div style="border: 1px solid green; margin: 10px 0px 10px 0px; padding: 10px; position: static; width: 85%;">Box 2</div>
<div style="border: 1px solid lime; left:15px; margin: 10px 0px 10px 0px; padding: 10px; position:fixed; top:15px; width: 85%;">Box 3</div>
<div style="border: 1px solid aqua; margin: 10px 0px 10px 0px; padding: 10px; position: static; width: 85%;">Box 4</div>
</div>

CSS position fixed

Giáo viên trả lời:
Kiểm tra mail để nhận lab

Giáo viên trả lời:
Kiểm tra mail để nhận file.

Giáo viên trả lời:
Trong trang Form, tại trường Email Bạn gắn lệnh Check Unique Key để kiểm tra.


=> Chọn trường Email cần kiểm tra -> Vào tab Server Behavior -> Click + -> Developer Toolbox -> Form Validation -> tại hộp column, chọn khoá chính, click nút -, sau đó click nút +, thêm vào trường Email cần kiểm tra trùng, nhập thông báo lỗi torng hộp Error Message

Giáo viên trả lời:
Check mail để nhận link download mới

Giáo viên trả lời:
Mở tập tNG_config.inc.php thử cấu hình các thông số sau:


$tNG_email_host = "ssl://smtp.gmail.com";
$tNG_email_user = "info@kimjewelry.com.vn";
$tNG_email_port = "465";
$tNG_email_password = "123456";
$tNG_email_defaultFrom = "info@kimjewelry.com.vn";


Tài khoản gmail của bạn phải bật bào mật 2 lớp

Giáo viên trả lời:
Tôi kiểm tra thì thấy video xem bình thường.
Kiểm tra email để xem cách xử lý

Giáo viên trả lời:
Kiểm tra email để nhận phần mềm

Giáo viên trả lời:
Loại bỏ thanh ngang


=============================================
Không biết là chỗ này bạn xuất dữ liệu các BĐS ra như thế nào nhưng nhình thấy thì độ rộng chỗ xuất ra các giá trị của BĐS đã vượt quá độ rộng của màn hình thiết bị do nó không Responsive.

1. Phần nhập liệu này là Bạn xuất ra trong table hay thẻ div vậy? nếu dùng thẻ div thì ở chế độ màn hình này cột tiêu đề để thuộc tính float:none và cột chứa nội dung cũng vậy để nó tự động rớt xuống dòng, và width định là 100%. Kiểm tra lại chỗ nhập môtả sản phẩm trong phần Editor không biết là bạn có chèn table trong đó không, nếu có thì table phải chỉnh thuộc tính là 100%

2. Nếu dùng table thì sẽ định thuộc tính để table responsive. Hiện tại rất nhiều script làm cho table responsive

1 2 3 4 5 ...[Trang kế] ...