define("ADMIN_STRING_HOME",'Trang chủ');
define("ADMIN_STRING_ADMINISTARSTOR_LOGIN",'Đăng nhập quản trị');
define("ADMIN_STRING_USERNAME",'Tên đăng nhập');
define("ADMIN_STRING_PASSWORD",'Mật khẩu');
define("ADMIN_STRING_LOGIN",'Đăng nhập');
define("ADMIN_STRING_WARING_LOGOUT",'Bạn đã không còn truy cập nữa');
define("ADMIN_STRING_WARING_LOGIN_ERROR",'Bạn chưa đăng nhập đúng tên truy cập hoặc sai mật khẩu. Xin mời nhập lại');
define("ADMIN_STRING_LOGUOT",'Thoát');
define("ADMIN_STR_WELLCOME_LOGIN",'Chào mừng đến với trang quản trị!');
define("ADMIN_STRING_WELLCOME",'Xin chào');
define("ADMIN_STR_SEARCH",'Tìm kiếm');
define("ADMIN_STRING_ORDER",'STT');
define("ADMIN_STR_WARING_ERR_NOCATE",'Danh mục này đang cập nội dung');
define("ADMIN_STRING_STATUS",'Trạng thái hiện thị');
define("ADMIN_STRING_EDIT",'Sửa');
define("ADMIN_STRING_DELETE",'Xóa');
define("ADMIN_STR_UPDATE",'Cập nhật');
define("ADMIN_STRING_YES",'Có');
define("ADMIN_STRING_NO",'Không');
define("ADMIN_STRING_APPLY",'Chấp nhận');
define("ADMIN_STRING_DEFAULT",'Mặc định');
define("ADMIN_ERROR_UPLOAD_IMG_DIR",'Lỗi. Tải lên không phải là thư mục được tìm thấy');
define("ADMIN_ERROR_UPLOAD_IMG_FILE",'Lỗi. Tập tin này không phải là loại hình cấp');
define("ADMIN_ERROR_UPLOAD_IMG_FILE_LARGER",'Lỗi. Dung lượng quá lớn hơn');
define("ADMIN_ERROR_UPLOAD_IMG",'Lỗi');
define("ADMIN_STRING_QUESTION_DEL",'Bạn có muốn xóa không');
define("ADMIN_STRING_SUCC_DEL",'Xóa dữ liệu thành công');
define("ADMIN_TOTAL_RECORD",'Tổng số bản ghi');
define("ADMIN_STR_SUCC_UPDATE",'Bạn đã cập nhật thành công');
define("ADMIN_STR_SERVER_INFORMATION",'Thông tin máy chủ');
define("ADMIN_STR_OS_SERVER",'Hệ điều hành máy chủ');
define("ADMIN_STR_TYPE_SERVER",'Loại máy chủ');
define("ADMIN_STR_PHP_VERSION",'Phiên bản PHP');
define("ADMIN_STR_MAXPOST_SIZE",'Dung lượng đăng lớn nhất');
define("ADMIN_STR_MYSQL_VERSION",'Phiên bản MySql');
define("ADMIN_STR_DB_SIZE",'Dung lương dữ liệu');
define("ADMIN_STR_INDEX_SIZE",'Dung lượng trang chủ');
define("ADMIN_STR_HOSTING",'Hosting');
define("ADMIN_STR_PORT",'Cổng');
define("ADMIN_STR_INFORMATION_BROWSER",'Thông tin trình duyệt');
define("ADMIN_STR_BROWSER",'Trình duyệt của bạn');
define("ADMIN_STR_ALL",'Tất cả');
define("ADMIN_STR_FILE_FORMAT_IS_INCORRECT",'Không đúng định dạng file');
define("ADMIN_STR_POWERED_BY",'Phát triển bởi');
define("ADMIN_STR_ADMINISTRATOR",'Quản trị website');
define("ADMIN_STR_ADMINISTRATOR_PAGE",'Trang quản trị');
define("ADMIN_STR_MANAGER_INTRODUCE",'Quản trị giới thiệu');
define("ADMIN_ADD_MANAGER_INTRODUCE",'Thêm giới thiệu');
define("ADMIN_EDIT_MANAGER_INTRODUCE",'Sửa giới thiệu');
define("ADMIN_SUCC_ADD_MANAGER_INTRODUCE",'Thêm giới thiệu thành công');
define("ADMIN_ERROR_ADD_MANAGER_INTRODUCE",'Nội dung giới thiệu đã tồn tại');
define("ADMIN_SUCC_EDIT_MANAGER_INTRODUCE",'Sửa giới thiệu thành công');
define("ADMIN_STR_TITLE_INTRODUCE",'Tiêu đề giới thiệu');
define("ADMIN_INTRODUCE_DOES_NOT_EXIST",'Giới thiệu không tồn tại');
define("ADMIN_STR_PICTURE",'Hình ảnh giới thiệu');
define("ADMIN_LIST_SUBWEB",'Danh sách trang web');
define("ADMIN_STR_TITLE_SITE",'Tiêu đề trang');
define("ADMIN_STR_CODE_SITE",'Mã trang');
define("ADMIN_ADD_LIST_SUBWEB",'Thêm danh sách trang web');
define("ADMIN_CHECK_TITLE_LIST_SUBWEB",'Mời nhập tiêu đề trang');
define("ADMIN_CHECK_CODE_LIST_SUBWEB",'Mời nhập mã trang');
define("ADMIN_SUCC_ADD_LIST_SUBWEB",'Thêm danh sách trang web thành công');
define("ADMIN_ERORR_ADD_LIST_SUBWEB",'Tên hoặc mã trang đã tồn tại');
define("ADMIN_EDIT_LIST_SUBWEB",'Sửa danh sách trang web');
define("ADMIN_SUCC_EDIT_LIST_SUBWEB",'Sửa danh sách trang web thành công');
define("ADMIN_LIST_SUBWEB_DOES_NOT_EXIST",'Danh sách trang web không tồn tại');
define("ADMIN_STRING_GENERAL_CONFIGURATION",'Cấu hình chung');
define("ADMIN_STRING_CONFIGURATION_SITE",'Cấu hình trang web');
define("ADMIN_ADD_CONFIGURATION_SITE",'Thêm cấu hình trang web');
define("ADMIN_EDIT_CONFIGURATION_SITE",'Sửa cấu hình trang web');
define("STRING_CHECKONE_NAME_SITE",'Chọn tên trang');
define("STRING_CHECKONE_LANG_VIEW",'Chọn ngôn ngữ hiện thị');
define("ADMIN_WARTING_OFFLINE_SITE",'Thông báo tạm ngừng');
define("ADMIN_STRING_META_KEYWORDS",'Từ khóa');
define("ADMIN_STRING_META_DESCRIPTION",'Mô tả');
define("ADMIN_CONTACT_DESC",'Nội dung liên hệ');
define("ADMIN_FOOTER_DESC",'Nội dung cuối trang');
define("ADMIN_SUCC_ADD_CONFIGURATION_SITE",'Cấu hình thành công trang web');
define("ADMIN_ERROR_ADD_CONFIGURATION_SITE",'Trang web đã tồn tại');
define("ADMIN_SUCC_EDIT_CONFIGURATION_SITE",'Bạn đã sửa cấu hình thành công');
define("ADMIN_STRING_LANGUAGE_VIEW",'Ngôn ngữ hiện thị');
define("ADMIN_STR_NAME_SITE",'Tiêu đề trang');
define("ADMIN_CONFIGURATION_SITE_DOES_NOT_EXIST",'Cấu hình trang web không tồn tại');
define("ADMIN_POS_VIEW",'Quản trị vị trí hiện thị');
define("ADMIN_STR_TITLE_POS_VIEW",'Tiêu đề vị trí hiện thị');
define("ADMIN_ADD_POS_VIEW",'Thêm vị trí hiện thị');
define("ADMIN_EDIT_POS_VIEW",'Sửa vị trí hiện thị');
define("ADMIN_SUCC_ADD_POS_VIEW",'Thêm vị trí hiện thị thành công');
define("ADMIN_ERORR_ADD_POS_VIEW",'Tiêu đề vị trí hiện thị đã tồn tại');
define("ADMIN_SUCC_EDIT_POS_VIEW",'Sửa vị trí hiện thị thành công');
define("ADMIN_STR_TITLE_POSVIEW_TOP",'Trên');
define("ADMIN_STR_TITLE_POSVIEW_BOTTOM",'Dưới');
define("ADMIN_STR_TITLE_POSVIEW_RIGHT",'Phải');
define("ADMIN_STR_TITLE_POSVIEW_LEFT",'Trái');
define("ADMIN_STR_TITLE_POSVIEW_TOPCENTER",'Trên giữa');
define("ADMIN_STR_TITLE_POSVIEW_BOTTOMCENTER",'Dưới giữa');
define("ADMIN_STR_TITLE_POSVIEW_TOPPOST",'Trên BV');
define("ADMIN_STR_TITLE_POSVIEW_BOTTOMPOST",'Dưới BV');
define("ADMIN_STR_TITLE_POSVIEW_TOPLEFT",'Trên trái');
define("ADMIN_STR_TITLE_POSVIEW_BOTTOMLEFT",'Dưới trái');
define("ADMIN_STR_TITLE_POSVIEW_CENTERLEFT",'Giữa trái');
define("ADMIN_STR_TITLE_POSVIEW_TOPRIGHT",'Trên phải');
define("ADMIN_STR_TITLE_POSVIEW_BOTTOMRIGHT",'Dưới phải');
define("ADMIN_STR_TITLE_POSVIEW_CENTERRIGHT",'Giữa phải');
define("ADMIN_STR_TITLE_POSVIEW_TOPPAGE",'Trên trang');
define("ADMIN_STR_TITLE_POSVIEW_LEFTPAGE",'Trái trang');
define("ADMIN_STR_TITLE_POSVIEW_BOTTOMPAGE",'Dưới trang');
define("ADMIN_STR_TITLE_POSVIEW_RIGHTPAGE",'Phải trang');
define("ADMIN_MANAGER_MEMBER",'Quản trị thành viên');
define("ADMIN_MANAGER_DECENTRALIZATION",'Quản trị phân quyền');
define("ADMIN_MANA_MEMBER_LIST",'Quản trị thành viên');
define("ADMIN_ADD_MANA_MEMBER_LIST",'Thêm thành viên');
define("ADMIN_CHECK_DECENTRALIZATION",'Chọn quyền hạn');
define("ADMIN_CHECK_USERNAME",'Mời bạn nhập tên đăng nhập');
define("ADMIN_CHECK_PASSWORD",'Mời bạn nhập mật khẩu');
define("ADMIN_EDIT_MANA_MEMBER_LIST",'Sửa thành viên');
define("ADMIN_SUCC_EDIT_MANA_MEMBER_LIST",'Sửa thành viên thành công');
define("ADMIN_SUCC_ADD_MANA_MEMBER_LIST",'Thêm thành viên thành công');
define("ADMIN_ERROR_ADD_MANA_MEMBER_LIST",'Tên đăng nhập đã tồn tại');
define("ADMIN_ERROR_DEL_DECENTRALIZATION",'Có thành viên đang nắm quyền này. Không thể xóa được');
define("ADMIN_ADD_DECENTRALIZATION",'Thêm phân quyền');
define("ADMIN_EDIT_DECENTRALIZATION",'Sửa phân quyền');
define("ADMIN_STR_TITLE_DECENTRALIZATION",'Tiêu đề quyền hạn');
define("ADMIN_CHECK_TITLE_DECENTRALIZATION",'Mời nhập tiêu đề quyền hạn');
define("ADMIN_SUCC_ADD_DECENTRALIZATION",'Thêm phân quyền thành công');
define("ADMIN_ERROR_ADD_DECENTRALIZATION",'Quyền hạn hoặc danh mục chức năng đã tồn tại.');
define("ADMIN_SUCC_ERROR_DECENTRALIZATION",'Sửa phân quyền thành công');
define("ADMIN_NUM_NEWS_UPDATE",'Tin tức cập nhật');
define("ADMIN_NUM_LINKS_UPDATE",'Liên kết cập nhật');
define("ADMIN_FUNCTION_WEBSITE_DOES_NOT_EXIST",'Danh mục chứng năng website không tồn tại');
define("ADMIN_DECENTRALIZATION_DOES_NOT_EXIST",'Quyền hạn không tồn tại');
define("ADMIN_MEMBER_LIST_DOES_NOT_EXIST",'Danh sách thành viên không tồn tại');
define("ADMIN_STR_FULLNAME",'Họ và tên');
define("ADMIN_NUM_INTRODUCE_UPDATE",'Giới thiệu cập nhật');
define("ADMIN_MANAGER_FUNCTION_WEBSITE",'Danh mục chức năng Website');
define("ADMIN_STR_TITLE_FUNCTION",'Tiêu đề chức năng');
define("ADMIN_STR_CODE_FUNCTION",'Mã chức năng');
define("ADMIN_ADD_FUNCTION_WEBSITE",'Thêm danh mục chức năng website');
define("ADMIN_EDIT_FUNCTION_WEBSITE",'Sửa danh mục chức năng website');
define("ADMIN_CHECK_TITLE_FUNCTION",'Mời nhập tiêu đề chức năng');
define("ADMIN_CHECK_CODE_FUNCTION",'Mời nhập mã chức năng');
define("ADMIN_SUCC_ADD_FUNCTION_WEBSITE",'Thêm danh mục chức năng website thành công');
define("ADMIN_ERROR_ADD_FUNCTION_WEBSITE",'Tiêu đề hoặc mã chức năng website đã tồn tại');
define("ADMIN_SUCC_EDIT_FUNCTION_WEBSITE",'Sửa danh mục chức năng website thành công');
define("ADMIN_STRING_SUPPORT_ONLINE",'Quản trị hỗ trợ trực tuyến');
define("ADMIN_STRING_SUPPORT_ROOM",'Quản trị phòng ban hỗ trợ');
define("ADMIN_STRING_SUPPORT_STAFF",'Quản trị nhân viên hỗ trợ');
define("ADMIN_STR_TITLE_DEPARTMENTS",'Tiêu đề phòng ban');
define("ADMIN_MANAGER_ADD_SUPPORT_ROOM",'Thêm phòng ban hỗ trợ');
define("ADMIN_SUCC_ADD_SUPPORT_ROOM",'Thêm phòng ban hỗ trợ thành công');
define("ADMIN_ERROR_ADD_SUPPORT_ROOM",'Phòng ban hỗ trợ đã tồn tại');
define("ADMIN_MANAGER_EDIT_SUPPORT_ROOM",'Sửa phòng ban hỗ trợ');
define("ADMIN_SUCC_EDIT_SUPPORT_ROOM",'Sửa phòng ban hỗ trợ thành công');
define("ADMIN_STR_SUPPORT_ROOM",'Phòng ban hỗ trợ');
define("ADMIN_STR_NICK_YAHOO_SUPPORT",'Nick Yahoo');
define("ADMIN_STR_NICK_SKYPE_SUPPORT",'Nick Skype');
define("ADMIN_ADD_SUPPORT_STAFF",'Thêm nhân viên hỗ trợ');
define("ADMIN_CHECK_SUPPORT_ROOM",'Chọn phòng ban hỗ trợ');
define("ADMIN_STR_CHECK_YAHOO",'Mời bạn nhập nick yahoo');
define("ADMIN_STR_CHECK_SUPPORT_ROOM",'Mời bạn chọn phòng ban');
define("ADMIN_SUCC_ADD_SUPPORT_STAFF",'Thêm nhân viên hỗ trợ thành công');
define("ADMIN_ERROR_ADD_SUPPORT_STAFF",'Nhân viên hỗ trợ đã tồn tại');
define("ADMIN_SUPPORT_STAFF_DOES_NOT_EXIST",'Nhân viên hỗ trợ không tồn tại');
define("ADMIN_SUCC_EDIT_SUPPORT_STAFF",'Sửa nhân viên hỗ trợ thành công');
define("ADMIN_SUPPORT_ROOM_DOES_NOT_EXIST",'Phòng ban hỗ trợ không tồn tại');
define("ADMIN_STR_FULLNAME_SUPPORT",'Họ và tên nhân viên hỗ trợ');
define("ADMIN_EDIT_SUPPORT_STAFF",'Sửa nhân viên hỗ trợ');
define("ADMIN_STR_CATE_WEBLINKS",'Quản trị danh mục liên kết');
define("ADMIN_STR_LINKS_WEBLINKS",'Quản trị liên kết website');
define("ADMIN_STR_CHECK_URL",'Mời bạn nhập liên kết');
define("ADMIN_STR_TITLE_CATEGORY_WEBLINKS",'Tiêu đề danh mục WEB');
define("ADMIN_MANAGER_ADD_WEBLINKS_CATEGORY",'Thêm nhóm liên kết');
define("ADMIN_MANAGER_EDIT_WEBLINKS_CATEGORY",'Sửa nhóm liên kết');
define("ADMIN_MANAGER_ADD_WEBLINKS_POST",'Thêm trang web liên kết');
define("ADMIN_MANAGER_EDIT_WEBLINKS_POST",'Sửa trang web liên kết');
define("ADMIN_CHECK_NO_URL",'URL bạn nhập không đúng địa chỉ');
define("ADMIN_MANAGER_FUNCTION_WEBSITE",'Danh mục chức năng Website');
define("ADMIN_LOGO_WEBLINKS",'Logo');
define("ADMIN_URL_LOGO_WEBLINKS",'Đường dẫn logo');
define("ADMIN_SUCC_ADD_WEBLINKS",'Bạn đã thêm trang web thành công');
define("ADMIN_ERROR_ADD_WEBLINKS",'Trang web đã tồn tại');
define("ADMIN_CHECK_CATE_WEBLINKS",'Mời bạn chọn nhóm cho trang web');
define("ADMIN_SUCC_EDIT_WEBLINKS",'Bạn đã sửa trang web thành công');
define("ADMIN_STR_URL_LINKS_WEBLINKS",'Đường dẫn');
define("ADMIN_CATE_WEBLINKS_DOES_NOT_EXIST",'Nhóm liên kết không tồn tại');
define("ADMIN_WEBLINKS_DOES_NOT_EXIST",'Liên kết không tồn tại');
define("ADMIN_MANAGER_ADVERTISE",'Quản trị quảng cáo');
define("ADMIN_NAME_CLIENT_ADVERTISE",'Tên nhà quảng cáo');
define("ADMIN_EMAIL_CLIENT_ADVERTISE",'Email liên hệ quảng cáo');
define("ADMIN_INFOR_CLIENT_ADVERTISE",'Thông tin nhà quảng cáo');
define("ADMIN_NAME_CONTACT_CLIENT_ADVERTISE",'Tên liên hệ quảng cáo');
define("ADMIN_ADD_LIST_CLIENT_ADS",'Thêm danh sách khách hàng');
define("ADMIN_CHECK_NAME_CLIENT_ADVERTISE",'Mời bạn nhập tên nhà quảng cáo');
define("ADMIN_CHECK_EMAIL_CLIENT_ADVERTISE",'Mời bạn nhập Email liên hệ quảng cáo');
define("ADMIN_CHECK_CONTACT_CLIENT_ADVERTISE",'Mời bạn nhập tên liên hệ quảng cáo');
define("ADMIN_SUCC_ADD_LIST_CLIENT_ADS",'Thêm danh sách khách hàng thành công');
define("ADMIN_ERORR_ADD_LIST_CLIENT_ADS",'Tên nhà quảng cáo hoặc email đã tồn tại. Mời nhập tên khác');
define("ADMIN_EDIT_LIST_CLIENT_ADS",'Sửa danh sách khách hàng');
define("ADMIN_SUCC_EDIT_LIST_CLIENT_ADS",'Sửa danh sách khách hàng thành công');
define("ADMIN_STR_PICTURE_FRAME",'Khung ảnh');
define("ADMIN_STR_LIST_PICTURE",'DS ảnh');
define("ADMIN_STRING_URL_PICTURE_ADVERTISE",'Liên kết ảnh quảng cáo');
define("ADMIN_STR_STYPE_ADVERTISE",'Kiểu hiện thị');
define("ADMIN_STRING_POSTION_STATUS",'Vị trí hiện thị');
define("ADMIN_NUM_ENDDATE_ADVERTISE",'Số ngày hết hạn');
define("ADMIN_ADD_PICTURE_ADVERTISE",'Thêm quảng cáo');
define("ADMIN_STR_ONPAGE_ADVERTISE",'Đặt trên trang');
define("ADMIN_PICTURE_ADVERTISE",'Ảnh quảng cáo');
define("ADMIN_SUCC_ADD_ADVERTISE",'Bạn đã thêm quảng cáo thành công');
define("ADMIN_ERORR_ADD_ADVERTISE",'URL quảng cáo đã tồn tại');
define("ADMIN_EDIT_PICTURE_ADVERTISE",'Sửa quảng cáo');
define("STRING_CHECK_PICTURE_ADVERTISE",'Mời bạn chọn ảnh quảng cáo');
define("ADMIN_SUCC_EDIT_ADVERTISE",'Bạn đã sửa quảng cáo thành công');
define("ADMIN_LIST_CLIENT",'Quản trị danh sách khách hàng quảng cáo');
define("ADMIN_WART_DEL_LIST_CLIENT_ADS_ERROR",'Khách hàng đang có quảng cáo không xóa được');
define("ADMIN_ADVERTISING_DOES_NOT_EXIST",'Quảng cáo không tồn tại');
define("ADMIN_CUSTOMER_LIST_DOES_NOT_EXIST",'Danh sách khách hàng không tồn tại');
define("ADMIN_ALT_PICTURE_ADVERTISE",'Thuộc tính ALT');
define("ADMIN_TITLE_PICTURE_ADVERTISE",'Thuộc tính TITLE');
define("ADMIN_STRING_CHECK_EMAIL",'Xin nhập đúng địa chỉ email');
define("ADMIN_CHECK_POSTION_STATUS",'Chọn vị trí hiện thị');
define("ADMIN_STR_TITLE_ADVERTISE",'Tiêu đề quảng cáo');
define("ADMIN_CHECK_POSTION_STATUS",'Chọn vị trí hiện thị');
define("STRING_MANAGER_CONTACT",'Quản trị thông tin góp ý');
define("ADMIN_STR_DETAIL_CONTACT",'Nội dung góp ý');
define("ADMIN_STR_UNREAD",'Chưa đọc');
define("ADMIN_STR_READ",'Đã đọc');
define("AMIN_MANAGER_POLL",'Quản trị thăm dò dư luận');
define("AMIN_STR_QUESTION_SURVEY",'Câu hỏi');
define("AMIN_STR_ANSWER_SURVEY",'Câu trả lời');
define("AMIN_ADD_MANAGER_POLL",'Thêm thăm dò dư luận');
define("AMIN_SUCC_MANAGER_POLL",'Thêm thăm dò dư luận thành công');
define("ADMIN_CHECK_QUESTION_SURVEY",'Mời bạn nhập câu hỏi thăm dò');
define("AMIN_ERROR_MANAGER_POLL",'Câu hỏi thăm dò đã tồn tại');
define("AMIN_EDIT_MANAGER_POLL",'Sửa thăm dò dư luận');
define("ADMIN_STR_SURVEY",'Mời bạn nhập câu hỏi thăm dò');
define("ADMIN_STR_VOTE",'Bình chọn');
define("ADMIN_STR_RESULTS",'Kết quả');
define("ADMIN_CHECK_ANSWER",'Chọn một câu hỏi');
define("ADMIN_THANKS_SURVEY",'Cảm ơn bạn đã bình chọn');
define("ADMIN_RESULTS_SURVEY",'Kết quả thăm dò');
define("AMIN_SUCC_EDIT_MANAGER_POLL",'Sửa thăm dò dư luận thành công');
define("ADMIN_STR_PAGE_PROFILE",'Quản trị thông tin cá nhân');
define("ADMIN_SUCC_EDIT_PROFILE",'Sửa thông tin cá nhân thành công');
define("ADMIN_PROFILE_DOES_NOT_EXIST",'Thông tin tài khoản không tồn tại');
define("STR_QUANTITY",'Số lượng');
define("STR_TOTAL",'Tổng số (VNĐ)');
define("STR_CONTINUE_BUY",'Tiếp tục mua hàng');
define("STR_UPDATE_CART",'Cập nhật giỏ hàng');
define("STR_TOTAL_VALUE_ORDERS",'Tổng giá trị đơn hàng (VNĐ)');
define("_SURE_DELETE_CART",'* Nhập số lượng bằng 0 nếu muốn xóa sản phẩm khỏi giỏ hàng. ');
define("STR_ORDER_INFORMATION",'Thông tin người đặt hàng');
define("STR_ORDER_NAME",'Tên người đặt hàng');
define("STR_NOTES",'Ghi chú');
define("STR_RECIPIENT",'Tên người nhận');
define("RECIPIENT_COINCIDES_ORDER_INFOR",'Thông tin người nhận trùng với thông tin người đặt hàng');
define("STR_TIME_RETURNS",'Thời gian nhận hàng');
define("STR_CHOOSE_PAYMENT_METHOD",'Chọn hình thức thanh toán');
define("CLICK_PAYMENT_METHOD",'Click vào hình thức thanh toán bạn chọn');
define("STR_ORDERS",'Đặt hàng');
define("ADMIN_CHECK_ADDRESS_CUSTOMER",'Mời nhập địa chỉ');
define("STR_RECIPIENT_INFOR",'Thông tin người nhận hàng');
define("ADMIN_H_CUSTOMER",'Giờ');
define("ADMIN_M_CUSTOMER",'phút');
define("STR_ORDER_SET",'Đơn hàng đã đặt');
define("STR_CODE_ORDERS",'Mã số đơn hàng');
define("STR_PAYMENT_STATUS",'Tình trạng thanh toán');
define("STR_TRANSPORT",'Tình trạng vận chuyển');
define("STR_TIME_ORDER",'Thời gian đặt hàng');
define("STR_UNPAID",'Chưa thanh toán');
define("STR_PAID",'Đã thanh toán');
define("STR_HAVE_NOT_FOUND",'Chưa gửi hàng');
define("STR_SENT_IN",'Đã gửi hàng');
define("STR_RECEIVED_IN",'Đã nhận hàng');
define("ADMIN_ORDERS_PRODUCTS_DOES_NOT_EXIST",'Đơn hàng không tồn tại');
define("STR_NO_MONEY",'Chưa chuyển tiền');
define("STR_YES_MONEY",'Đã chuyển tiền');
define("STR_NAME_COMPANY",'Công ty Cổ Phần Tư Vấn Đầu Tư Thương Mại Và Xây Dựng Toàn Cầu');
define("STR_ADDRESS_COMPANY",'Hà Đông Hà Nội');
define("STR_PURCHASE_INVOICES",'HÓA ĐƠN MUA HÀNG');
define("STR_BILLING_INFORMATION",'Thông tin hóa đơn');
define("STR_PURCHASE_AT",'Mua hàng lúc');
define("STR_RECEIPT_AT",'Nhận hàng lúc');
define("STR_PAYMENT_METHOD",'Hình thức thanh toán');
define("STR_PRODUCTS_INFOR",'Thông tin sản phẩm');
define("ADMIN_PRODUCTS",'Quản trị sản phẩm');
define("ADMIN_CATE_PRODUCTS",'Quản trị danh mục sản phẩm');
define("ADMIN_ORDER_PRODUCTS",'Quản trị đơn hàng');
define("ADMIN_TITLE_CATE_PRODUCTS",'Tiêu đề danh mục sản phẩm');
define("ADMIN_ADD_CATE_PRODUCTS",'Thêm danh mục sản phẩm');
define("ADMIN_CHECK_TITLE_CATE_PRODUCTS",'Mời nhập tiêu đề danh mục sản phẩm');
define("ADMIN_PAR_CATE_PRODUCTS",'Danh mục sản phẩm gốc');
define("ADMIN_SUCC_ADD_CATE_PRODUCTS",'Thêm danh mục sản phẩm thành công');
define("ADMIN_ERROR_ADD_CATE_PRODUCTS",'Danh mục sản phẩm đã tồn tại');
define("ADMIN_EDIT_CATE_PRODUCTS",'Sửa danh mục sản phẩm');
define("ADMIN_CATE_PRODUCTS_DOES_NOT_EXIST",'Danh mục sản phẩm không tồn tại');
define("ADMIN_SUCC_EDIT_CATE_PRODUCTS",'Sửa danh mục sản phẩm thành công');
define("ADMIN_TITLE_PRODUCTS",'Tiêu đề sản phẩm');
define("ADMIN_DESC_PRODUCTS",'Mô tả sản phẩm');
define("ADMIN_PICTURE_PRODUCTS",'Ảnh sản phẩm');
define("ADMIN_PRICE_PRODUCTS",'Giá sản phẩm (VNĐ)');
define("ADMIN_PROMOTION_PRODUCTS",'Khuyến mại sản phẩm');
define("ADMIN_ADD_PRODUCTS",'Thêm sản phẩm');
define("ADMIN_STR_CATE_PRODUCTS",'Danh mục sản phẩm');
define("ADMIN_DETAIL_PRODUCTS",'Chi tiết sản phẩm');
define("ADMIN_CHECK_TITLE_PRODUCTS",'Mời nhập tiêu đề sản phẩm');
define("ADMIN_CHECK_CATE_PRODUCTS",'Mời chọn danh mục sản phẩm');
define("ADMIN_SUCC_ADD_PRODUCTS",'Thêm sản phẩm thành công');
define("ADMIN_ERROR_ADD_PRODUCTS",'Sản phẩm đã tồn tại');
define("ADMIN_EDIT_PRODUCTS",'Sửa sản phẩm');
define("ADMIN_SUCC_EDIT_PRODUCTS",'Sửa sản phẩm thành công');
define("ADMIN_PRODUCTS_DOES_NOT_EXIST",'Sản phẩm không tồn tại');
define("ADMIN_LOCATION_PRODUCTS",'Quản trị địa điểm');
define("ADMIN_CUSTOMER_PRODUCTS",'Quản trị khách hàng');
define("ADMIN_ORDER_PRODUCTS",'Quản trị đơn hàng');
define("ADMIN_FEEDBACK_PRODUCTS",'Quản trị ý kiến khách hàng');
define("ADMIN_PAYMENT_METHOD_PRODUCTS",'Quản trị hình thức thanh toán');
define("ADMIN_TITLE_LOCATION_PRODUCTS",'Tiêu đề địa điểm');
define("ADMIN_ADD_LOCATION_PRODUCTS",'Thêm địa điểm');
define("ADMIN_SUCC_ADD_LOCATION_PRODUCTS",'Thêm địa điểm thành công');
define("ADMIN_ERROR_ADD_LOCATION_PRODUCTS",'Địa điểm đã tồn tại');
define("ADMIN_CATE_LOCATION_PRODUCTS",'Danh mục địa điểm');
define("ADMIN_CHECK_TITLE_LOCATION_PRODUCTS",'Mời nhập tiêu đề địa điểm');
define("ADMIN_EDIT_LOCATION_PRODUCTS",'Sửa địa điểm');
define("ADMIN_SUCC_EDIT_LOCATION_PRODUCTS",'Sửa địa điểm thành công');
define("ADMIN_LOCATION_PRODUCTS_DOES_NOT_EXIST",'Địa điểm không tồn tại');
define("ADMIN_CHECK_PAR_CATE_PRODUCTS",'Mời chọn danh mục sản phẩm gốc');
define("ADMIN_ADD_PAYMENT_METHOD_PRODUCTS",'Thêm hình thức thanh toán');
define("ADMIN_SUCC_ADD_PAYMENT_METHOD_PRODUCTS",'Thêm hình thức thanh toán thành công');
define("ADMIN_ERROR_ADD_PAYMENT_METHOD_PRODUCTS",'Hình thức thanh toán đã tồn tại');
define("ADMIN_EDIT_PAYMENT_METHOD_PRODUCTS",'Sửa hình thức thanh toán');
define("ADMIN_TITLE_PAYMENT_METHOD_PRODUCTS",'Tiêu đề hình thức thanh toán');
define("ADMIN_SUCC_EDIT_PAYMENT_METHOD_PRODUCTS",'Sửa hình thức thanh toán thành công');
define("ADMIN_PAYMENT_METHOD_PRODUCTS_DOES_NOT_EXIST",'Hình thức thanh toán không tồn tại');
define("ADMIN_REVIEWS_PRODUCTS",'Đánh giá sản phẩm');
define("ADMIN_TITLE_FEEDBACK_PRODUCTS",'Tiêu đề ý kiến khách hàng');
define("ADMIN_DETAIL_FEEDBACK_PRODUCTS",'Nội dung ý kiến khách hàng');
define("ADMIN_COMMENTS_REVIEWS_PRODUCTS",'Ý kiến và đánh giá khách hàng');
define("ADMIN_BIRTHDAYS_CUSTOMER",'Ngày sinh');
define("ADMIN_SEX_CUSTOMER",'Giới tính');
define("ADMIN_EMAIL_CUSTOMER",'Thư điện tử');
define("ADMIN_PHONE_CUSTOMER",'Điện thoại');
define("ADMIN_ADDRESS_CUSTOMER",'Địa chỉ');
define("ADMIN_PICTURE_CUSTOMER",'Ảnh khách hàng');
define("ADMIN_MALE_CUSTOMER",'Nam');
define("ADMIN_FEMALE_CUSTOMER",'Nữ');
define("ADMIN_ADD_CUSTOMER_PRODUCTS",'Thêm khách hàng');
define("ADMIN_SUCC_ADD_CUSTOMER_PRODUCTS",'Thêm khách hàng thành công');
define("ADMIN_ERROR_ADD_CUSTOMER_PRODUCTS",'Khách hàng đã tồn tại');
define("ADMIN_DAY_CUSTOMER",'Ngày');
define("ADMIN_MONTH_CUSTOMER",'Tháng');
define("ADMIN_YEAR_CUSTOMER",'Năm');
define("ADMIN_FAX_CUSTOMER",'Fax');
define("ADMIN_COUNTRY_CUSTOMER",'Đất nước');
define("ADMIN_PROVINCE_CUSTOMER",'Tỉnh / Thành');
define("ADMIN_DISTRICT_CUSTOMER",'Quận / Huyện');
define("ADMIN_CHECK_COUNTRY_CUSTOMER",'Chọn Đất nước');
define("ADMIN_CHECK_PROVINCE_CUSTOMER",'Chọn Tỉnh / Thành');
define("ADMIN_CHECK_FULLNAME_CUSTOMER",'Mời nhập họ và tên khách hàng');
define("ADMIN_CHECK_EMAIL_CUSTOMER",'Mời nhập thư điện tử của khách hàng');
define("ADMIN_CHECK_PHONE_CUSTOMER",'Mời nhập số điện thoại của khách hàng (giá trị nhập vào phải là ký tự số)');
define("ADMIN_CHECK_FAX_CUSTOMER",'Mời nhập đúng số fax của khách hàng (giá trị nhập vào phải là ký tự số)');
define("ADMIN_EDIT_CUSTOMER_PRODUCTS",'Sửa khách hàng');
define("ADMIN_CUSTOMER_DOES_NOT_EXIST",'Khách hàng không tồn tại');
define("ADMIN_SUCC_EDIT_CUSTOMER_PRODUCTS",'Sửa khách hàng thành công');
define("ADMIN_EDIT_ORDER_PRODUCTS",'Sửa đơn hàng');
define("ADMIN_LEGEND_BROWSER",'Chú thích người duyệt');
define("ADMIN_SUCC_EDIT_ORDER_PRODUCTS",'Sửa đơn hàng thành công');
define("ADMIN_STR_ORDER",'STT');
define("ADMIN_STR_REGION",'Vị trí');
define("ADMIN_STR_ADDNEW",'Thêm mới');
define("ADMIN_STR_EDIT",'Sửa');
define("ADMIN_STR_DELETE",'Xóa');
define("ADMIN_STR_UNPUBLISH",'Không hiện thị');
define("ADMIN_STR_PUBLISH",'Hiện thị');
define("ADMIN_STR_DEL_PIC",'Xóa ảnh');
define("ADMIN_STR_NO_PICTURE",'Không ảnh');
define("NEXT",'Trang sau');
define("PREVIEW",'Trang trước');
define("ADMIN_STR_SELECT_ITEMS",'Bạn phải chọn ít nhất 1 bản ghi!');
define("ADMIN_STR_WANT_DELETE",'Bạn có chắc chắn muốn xóa không?');
define("ADMIN_STRING_QUESTION_DEL",'Bạn có muốn xóa không');
define("ADMIN_STRING_SUCC_DELPIC",'Xóa ảnh thành công');
define("ADMIN_STR_TITLE",'Tiêu đề');
define("ADMIN_STR_DESC",'Mô tả');
define("ADMIN_STR_DETAIL",'Chi tiết');
define("ADMIN_STR_PIC",'Hình ảnh');
define("ADMIN_STR_INFORMATION_REQUIRED",'Thông tin bắt buộc phải nhập');
define("ADMIN_CHECK_ORDER_NUMBER",'Mời bạn nhập STT (giá trị nhập vào phải là ký tự số)');
define("ADMIN_CHECK_TITLE",'Mời bạn nhập tiêu đề cho bài viết');
define("ADMIN_STR_SAVE",'Lưu lại');
define("ADMIN_STR_CANCEL",'Bỏ qua');
define("ADMIN_STR_APPLY",'Áp dụng');
define("ADMIN_STR_HACKER",'Bạn không có quyền truy cập vào mục này. Liên hệ với quản trị để lên quyền');
define("ADMIN_STR_VIEWED",'Lần xem');
define("ADMIN_STRING_MANAGER_CODE_HTML",'Quản trị mã HTML');
define("ADMIN_STRING_TITLE_MODHTML",'Tiêu đề mã HTML');
define("ADMIN_STR_ADD_CODE_HTML",'Thêm mã HTML');
define("ADMIN_STR_EDIT_CODE_HTML",'Sửa mã HTML');
define("ADMIN_ERROR_ADD_CODE_HTML",'Nội dung mã HTML đã tồn tại');
define("ADMIN_SUCC_ADD_CODE_HTML",'Thêm mã HTML thành công');
define("ADMIN_SUCC_EDIT_CODE_HTML",'Bạn đã sửa mã HTML thành công');
define("ADMIN_STR_DETAIL_MOD_HTML",'Nội dung mã HTML');
define("ADMIN_STR_CHECK_TITLE_MOD_HTML",'Mời bạn nhập tiêu để mã HTML');
define("ADMIN_STR_CHECK_DETAIL_MOD_HTML",'Mời bạn nhập nội dung mã HTML');
define("ADMIN_CODE_HTML_DOES_NOT_EXIST",'Mã HTML không tồn tại');
define("ADMIN_STRING_MODULE",'Quản trị Mô-Đun');
define("ADMIN_STR_CHECK_ONPAGE",'Mời bạn chọn đặt trên trang nào');
define("ADMIN_STR_ONPAGE_ADVERTISE",'Đặt trên trang');
define("ADMIN_STR_CHECK_POSVIEW",'Mời bạn chọn vị trí hiện thị');
define("ADMIN_STR_NEWSOL",'Quản trị tin tức online');
define("ADMIN_STR_NEWSOL_CATEGORY",'Quản trị danh mục tin tức online');
define("ADMIN_STR_NEWSOL_POST",'Quản trị bài viết tin tức online');
define("ADMIN_STR_FEEDBACK_NEWS",'Quản trị ý kiến bạn đọc');
define("ADMIN_STR_NEWS",'Quản trị tin tức');
define("ADMIN_STR_NEWS_CATEGORY",'Quản trị danh mục tin tức');
define("ADMIN_TITLE_NEWS_CATEGORY",'Tiêu đề danh mục tin tức');
define("ADMIN_ADD_NEWS_CATEGORY",'Thêm danh mục tin tức');
define("ADMIN_EDIT_NEWS_CATEGORY",'Sửa danh mục tin tức');
define("ADMIN_CHECK_TITLE_CATE_NEWS",'Mời nhập tiêu đề danh mục tin tức');
define("ADMIN_SUCC_ADD_CATE_NEWS",'Thêm danh mục tin tức thành công');
define("ADMIN_ERROR_ADD_CATE_NEWS",'Danh mục tin tức đã tồn tại');
define("ADMIN_STR_NEWS_POST",'Quản trị bài viết tin tức');
define("ADMIN_CHECK_PAR_CATE_NEWS",'Mời chọn danh mục tin tức gốc');
define("ADMIN_SUCC_EDIT_CATE_NEWS",'Sửa danh mục tin tức thành công');
define("ADMIN_CATE_NEWS_DOES_NOT_EXIST",'Danh mục tin tức không tồn tại');
define("ADMIN_PAR_CATE_NEWS",'Danh mục tin tức gốc');
define("ADMIN_STR_CATE_NEWS",'Danh mục bài viết');
define("ADMIN_TITLE_NEWS",'Tiêu đề bài viết');
define("ADMIN_PICTURE_NEWS",'Ảnh bài viết');
define("ADMIN_DESC_TITLE",'Mô tả bài viết');
define("ADMIN_ADD_NEWS",'Thêm bài viết tin tức');
define("ADMIN_DETAIL_NEWS",'Chi tiết bài viết');
define("ADMIN_URL_PICTURE_NEWS",'Đường dẫn ảnh bài viết');
define("ADMIN_SOUCE_NEWS",'Nguồn bài viết');
define("ADMIN_CHECK_CATE_NEWS",'Mời chọn danh mục bài viết');
define("ADMIN_CHECK_TITLE_NEWS",'Mời nhập tiêu đề bài viết');
define("ADMIN_SUCC_ADD_NEWS",'Thêm bài viết tin tức thành công');
define("ADMIN_ERROR_ADD_NEWS",'Bài viết tin tức đã tồn tại');
define("ADMIN_COMMENTS_REVIEWS_NEWS",'Ý kiến bạn đọc');
define("ADMIN_EDIT_NEWS",'Sửa bài viết tin tức');
define("ADMIN_NEWS_DOES_NOT_EXIST",'Bài viết tin tức không tồn tại');
define("ADMIN_SUCC_EDIT_NEWS",'Sửa bài viết tin tức thành công');
define("STR_HOME",'Trang chủ');
define("STR_NEWOL",'Tin tức Việt Nam');
define("STR_GAMES",'Trò chơi');
define("STR_TELEVISION",'Truyền hình');
define("STR_CONTACT",'Liên hệ');
define("STR_RSS",'RSS');
define("READ_MORE",'Xem tiếp ...');
define("STR_WEATHER",'Thời tiết');
define("STR_GOLD_PRICES",'Giá vàng');
define("STR_RATE",'Ngoại tệ');
define("CATEGORY_IS_UPDATED",'Danh mục đang cập nhật bài viết');
define("STR_INFOR_NEED",'Thông tin cần biết');
define("STR_SUPPOTS",'Hỗ trợ trực tuyến');
define("STR_CATEGORY",'Danh mục');
define("STR_SOURCE",'Nguồn bài viết');
define("STR_TAGS",'Tìm hiểu thêm');
define("STR_OTHERS_POSTED",'Các bài cũ');
define("STR_MOST_READ",'Tin đọc nhiều');
define("STR_LATEST_NEWS",'Tin mới nhất');
define("STR_NEWIT",'Tin tức IT');
define("FOUND",'Tìm thấy');
define("RESULTS_MEET",'kết quả thỏa mãn cho');
define("NO_RESULTS_FOUND_SATISFACTION",'Không tìm thấy kết quả thỏa mãn');
define("STR_SEND_YOUR_COMMENTS",'Gửi bình luận của bạn');
define("STR_FULLNAME_YOUR_COMMENT",'Họ tên bạn');
define("STR_EMAIL_COMMENT",'Email');
define("STR_CONTENT_COMMENT",'Nội dung');
define("STR_SEND_INFOR_COMMENT",'Gửi thông tin');
define("STR_CAPTCHA_COMMENT",'Mã bảo mật');
define("STR_READER_COMMENTS",'Ý kiến bạn đọc');
define("ADMIN_CHECK_CONTENT_COMMENT",'Mời nhập nội dung bình luận');
define("STR_SUCC_SEND_COMMENT",'Gửi bình luận thành công');
define("STR_ERROR_SEND_COMMENT",'Bạn nhập mã bảo mật không đúng');
define("HOME",'Home');
define("NEW_GAMES",'New games');
define("MOST_POPULAR_GAMES",'Most popular games');
define("COOL_LINKS",'');
?>
Tìm hiểu về Collection of Record trong JavaScript - Tim hieu ve Collection of Record trong JavaScript | Phần mềm trực tuyến | Thư viện Download | Tin công nghệ | Tin tức IT
Quản Trị Mạng - Trong bài viết trước, chúng tôi đã giới thiệu với các bạn một vài đặc điểm về mảng 2 chiều – Array 2D trong JavaScript, trong nhiều trường hợp áp dụng khi chúng ta cần giữ thông tin về 1 hoặc nhiều danh sách số lượng chuỗi dữ liệu nhất định, đối tượng Array sẽ là công cụ được sử dụng phổ biến và nhiều nhất.
Ví dụ như sau:
var aNames= [ "Adam", "Bill", "Carl" ]; // create an array
alert( aNames[0] ); // Adam -- look it up by its index number
// iterate through them
for ( var j=0; j< aNames.length; j++ ) {
alert( aNames[j] ); //
}
Nhưng trên thực tế, JavaScript còn hỗ trợ thêm Associative Arrays (hay còn gọi là Maps hoặc Dictionaries), cung cấp thêm cho người sử dụng 1 cách khác để truy cập vào danh sách các đối tượng không qua vị trí, mà là khóa liên kết:
Tuy nhiên, tính năng hỗ trợ này không hoạt động giống với những gì mà chúng ta đã biết trước kia:
// this seems reasonable...
var aNames= new Array();
aNames[ "Anderson" ]= "Adam";
aNames[ "Browne" ]= "Bill";
aNames[ "Crawford" ]= "Carl";
alert( aNames[ "Anderson" ] ); // shows Adam (as expected)
// ... but this might not seem reasonable:
alert( aNames.length ); // shows 0 !!! (why not 3?)
Đoạn mã trên có chức năng tạo đối tượng Array, sau đó chèn dữ liệu nothing vào bất cứ thành phần nào trong mảng này. Và những quá trình tiếp theo sẽ tiến hành sau đó: tất cả các biến JavaScript (bao gồm cả Array) sẽ được coi là đối tượng với thuộc tính cơ bản của 1 Object điển hình. Những thuộc tính đó được xây dựng dựa trên các khối lớp hỗ trợ khả năng xử lý, giám sát cặp giá trị của mảng liên kết. Ví dụ như sau:
var mapNames= new Object(); // or: var mapNames= {};
mapNames[ "Anderson" ]= "Adam";
mapNames[ "Browne" ]= "Bill";
mapNames.Crawford = "Carl"; // alternate syntax
mapNames[ 2 ]= "Two";
alert( mapNames.length ); // undefined (it is not an Array)
for ( var j in mapNames ) { // show the keys
alert( j ); // Anderson, Browne, Crawford, 2
}
for ( var j in mapNames ) { // show the data associated with each key
alert( mapNames[j] ); // Adam, Bill, Carl, Two
}
Cặp giá trị key/value thường xuyên được gọi trong phần thuộc tính – Properties của 1 đối tượng. Và đối tượng Object hỗ trợ tùy chọn cho phép người dùng thiết lập, khởi tạo khóa key và giá trị trong cùng 1 thời điểm:
var mapNames= {
"Anderson" : "Adam", // syntax is key:value
"Browne" : "Bill",
"Crawford" : "Carl"
};
for ( var n in mapNames ) { // show the keys and values
alert( n+ "=" + mapNames[n] ); // Anderson=Adam, Browne=Bill, etc...
}
Giá trị key ở phía bên trái và value ở bên phải. Phần value này không nhất thiết phải là string hoặc bất cứ đối tượng nào tương ứng, chỉ cần có sẵn thuộc tính key/value. Một số thông tin hoặc ví dụ tham khảo, các bạn có thể đọc thêm tại đây.
Gán đối tượng thành tham số chức năng:
Chức năng linh hoạt này tỏ ra rất hữu ích trong nhiều trường hợp, 1 trong những số đó là quá trình truyền dữ liệu qua cấu trúc gọi chức năng, tương tự như như cách làm truyền tham số qua tên biến. Ví dụ như sau:
...
DoThat( {color:"Red", font:"Arial" } ); // unnamed object
...
function DoThat( o ) {
alert( o.color ); // shows: Red
alert( o.font ); // shows: Arial
}
Thủ tục gọi lệnh như trên sẽ tạo ra các đối tượng nặc danh - Anonymous (bộ tổ hợp các giá trị key:value), và các cú pháp lệnh được gọi ra có thể truy cập tới phần giá trị trong đối tượng qua tên. Lưu ý rằng nếu khóa key có dạng chuỗi ký tự thì có thể bỏ qua dấu ngoặc kép khi khởi tạo giá trị thuộc tính.
Tạo các mảng Record kết hợp:
Trên thực tế, chúng ta có thể dễ dàng tạo được các đối tượng map một cách nhanh chóng và gán thêm nhiều thuộc tính đi kèm. Tuy nhiên, cách làm này lại có 1 nhược điểm, ví dụ như sau:
var o= {}; // or: var o= new Object();
o.lastName= "Anderson";
o.age= 17;
... later that day ...
o.LastName= "Smith"; // oops, uppercase L
Nếu bạn bỏ lỡ tên của giá trị key bất kỳ, thì sau đó phải gán thêm thuộc tính mới vào đối tượng này. Mặc dù JavaScript có thể kết hợp với các đối tượng map thì không cần phải khai báo trực tiếp, nhưng làm theo cách này sẽ giúp chúng ta giảm thiểu được khá nhiều lỗi.
Trong phần lớn các trường hợp áp dụng trên thực tế, chúng ta có thể thực hiện bằng cách khởi tạo 1 bản ghi đã được định nghĩa sẵn – với cấu trúc đi kèm có chứa toàn bộ thông tin, dữ liệu trong đối tượng đó. Sau đó, sẽ gán các phần thông tin khởi tạo này tới đối tượng, qua đó chúng ta có thể dễ dàng phân loại, quản lý toàn bộ hệ thống thuộc tính có liên quan.
Tại cùng thời điểm đó, có lẽ các bạn sẽ cần thêm cách để khởi tạo giá trị record ban đầu, thiết lập giá trị mặc định, cách cố định... bằng cú pháp JavaScript như sau:
function PersonRec() {
this.sNameLast= ''; // the "this." part is required
this.sNameFirst= '';
this.nAge= 0;
this.fIsParent= false;
this.asChildren= new Array();
}
Ví dụ như trên, chúng ta đã hoàn tất việc khởi tạo đối tượng với những thuộc tính nhất định. Và khi đã tới bước này, các bạn đã có thể nghĩ đến việc coi 1 đối tượng bất kỳ như 1 bản ghi với nhiều trường dữ liệu khác nhau. Đối với những người đã có sẵn nền tảng kiến thức dựa trên C++, thì có thể rất khó khăn trong việc dùng từ khóa function để khởi tạo 1 cấu trúc xây dựng bất kỳ, nhưng lại có thể gây nhầm lẫn nếu trong phần mã còn lại có chứa chức năng hoặc biến constructor. Đoạn mã ví dụ trên không có tham số, nhưng phần mã dưới đây sẽ đảm nhận việc khởi tạo số lượng các biến của tham số, sau đó gán chúng vào trường dữ liệu riêng biệt:
Nếu như làm như trên, các ký tự hoặc biến thiếu sót sẽ được phát hiện, và các trường tương ứng sẽ dược tự động gán dữ liệu mặc định. Để tạo record, các bạn hãy sử dụng cú pháp như sau:
var rPer1= new PersonRec(); // populated with defaults
var rPer2= new PersonRec( "Anderson", "Adam", 35, true, ["Andy","Al"] ); // all data
var rPer3= new PersonRec( "Browne", "Bill" ); // with some data and some defaults
rPer3.nAge= 43; // update the record
rPer3.sNameFirst= "William"; // update the record
Chức năng xây dựng có thể thực hiện được nhiều hơn việc gán dữ liệu đơn thuần, ví dụ như tính toán dữ liệu của 1 trường dựa vào một số trường khác có liên quan, đọc hoặc chuyển tiếp thông tin từ trang web, lựa chọn dữ liệu từ database... hoặc bất kỳ thao tác nào người dùng muốn thực hiện mỗi khi 1 đối tượng Record được tạo. Bên cạnh đó, các biến dạng record này không cần lưu trữ theo cách thông thường. Cũng như đối với bất kỳ ngôn ngữ lập trình hướng đối tượng nào khác, người dùng có thể tự khởi tạo các phương thức, chức năng được áp dụng riêng đối với từng loại dữ liệu khác nhau. Ví dụ:
function PersonRec(p1,p2) {
this.sNameLast= p1;
this.sNameFirst=p2;
...
//-------------------------------- add some methods; i.e., member functions
this.GetFullName= function() {
return( this.sNameFirst +" "+ this.sNameLast );
};
Chúng ta có thể dễ dàng thấy rằng thành phần Object.toString() đã có sẵn, nhưng chỉ hiển thị dữ liệu đầu ra theo dạng [Object object], không thực sự hữu ích cho lắm trong nhiều trường hợp, cách này chỉ phù hợp trong để viết các hàm ghi đè như trên, qua đó chúng ta có thể dễ dàng hiển thị dữ liệu trong quá trình debug.
Sử dụng mảng Record kết hợp:
1 đối tượng mẫu chúng ta đã khởi tạo ở đây thường được sử dụng như 1 thành phần trong mảng dữ liệu, tương tự như 1 bản ghi, và đây là khái niệm rất cơ bản về collection. Giả sử rằng chúng ta có 1 chuỗi dữ liệu được hiển thị dưới dạng menu drop – down, và khi người dùng chọn 1 thành phần, hệ thống sẽ tiến hành quá trình xác định trường dữ liệu tương ứng trong form.
Về bản chất, JavaScript sẽ thực hiện quá trình xác định dữ liệu qua AJAX, hoặc phân tích luồng thông tin qua trang web, hoặc đơn giản hơn là từ 1 file duy nhất nào đó. Đơn giản hơn, chúng ta có thể thực hiện quá trình này trước trong phần mã nguồn:
var arPersons = [
new PersonRec("Anderson", "Adam", 35, true, ["Andy","Alice"] ),
new PersonRec("Browne", "Bill", 25, false ),
new PersonRec("Crawford", "Carl", 45, true, ["Caroline"] )
];
Sau khi hoàn tất bước khởi tạo đối tượng mảng của các bản ghi tương ứng, chúng ta có thể dễ dàng “xâu chuỗi” toàn bộ bằng cú pháp JavaScript như sau:
var oCombo= document.getElementById('selectName'); // a <SELECT> element
oCombo.options.length=0; // clear out the box
oCombo.options.length=arPersons.length; // prepare to repopulate
for (var j=0; j<arPersons.length; j++) {
oCombo.options[j].text= arPersons[j].sNameLast;
}
... later, see what's been selected ...
var i= oCombo.selectedIndex;
alert( arPersons[i].sNameFirst +" is "+ arPersons[i].nAge );
Kết quả hiển thị của bảng dữ liệu sẽ có dạng như sau:
Tạo chu kỳ hoạt động của các thành phần trong mảng, sau đó hiển thị giá trị các thuộc tính của đối tượng PersonRec như sau:
function BuildOutputTable() {
var sOut="<table border=2>";
sOut +="<tr>";
sOut +="<td>Last Name</td><td>First Name</td><td>Age</td><td># of Kids</td>"
sOut +="</tr>";
for ( var j=0; j<arPersons.length; j++ ) {
var rP= arPersons[j]; // a PersonRec object
sOut += "<tr>";
sOut += "<td>" +rP.sNameLast+ "</td>";
sOut += "<td>" +rP.sNameFirst+ "</td>";
sOut += "<td>" +rP.nAge+ "</td>";
sOut += "<td>" +rP.asChildren.length+ "</td>";
sOut += "</tr>";
}
sOut += "</table>";
return(sOut);
}
Một số bài viết khác có liên quan đến chủ đề của chúng ta ngày hôm nay: