Tài liệu một số khái niệm căn bản liên quan đến kỹ thuật xây dựng Web

Thảo luận trong 'Thiết Kế Web' bắt đầu bởi Thúy Viết Bài, 5/12/13.

  1. Thúy Viết Bài

    Thành viên vàng

    Bài viết:
    198,891
    Được thích:
    173
    Điểm thành tích:
    0
    Xu:
    0Xu
    I. Máy khách, máy chủ, trình duyệt

    Trước tiên, chúng ta hãy làm quen với một số khái niệm hay được sử dụng trong lập trình mạng nói chung, và lập trình Web nói riêng.

    Điều đầu tiên các bạn cần phải biết đến là các ứng dụng mạng bao giờ cũng gồm 2 phần: một phần chạy trên máy chủ và một phần chạy trên máy khách. Vậy máy chủ là gì?

    - Máy chủ (hay còn gọi là máy phục vụ - thuật ngữ tiếng Anh gọi là Server) - hiểu theo đúng nghĩa của nó, là máy cung cấp các dịch vụ, chẳng hạn như dịch vụ cung cấp trang Web, hay dịch vụ cung cấp dữ liệu (file, các cơ sở dữ liệu ). Các máy chủ là các máy được sử dụng để cho nhiều máy tính khác nhau cùng truy cập, vì vậy thông thường chúng là các máy tính có cấu hình phần cứng rất mạnh, và có các hệ thống phần mềm chuyên biệt để có thể phục vụ cho nhiều người cùng một lúc (các phần mềm này thường gọi là các phần mềm phía server). Các máy chủ có thể được sử dụng để cung cấp nhiều dịch vụ cùng một lúc, chẳng hạn như vừa truyền tải file, vừa cung cấp các trang Web nhưng để đảm bảo cho các dịch vụ luôn hoạt động tốt, các nhà quản lý thường chuyên biệt hoá các máy chủ theo từng mục đích khác nhau. Chẳng hạn máy chủ Web (Web server) chuyên dùng để quản lý Web, máy chủ FTP (FTP server) chuyên dùng trong việc quản lý các file được upload hay download, máy chủ SMTP (SMTP server) chuyên dùng vào việc trao đổi các thông tin thư điện tử (E-mail) giữa các máy chủ với nhau

    - Để truy cập đến một máy chủ, người ta thường sử dụng một khái niệm gọi là địa chỉ IP. Địa chỉ IP là một tổ hợp 32 bit do các nhà quản lý cung cấp. Địa chỉ IP cho phép xác định máy tính ở trên mạng. Nó giống như địa chỉ nhà bạn vậy. Có điều địa chỉ IP là một con số chẳng dễ nhớ tí nào, vì vậy người ta mới sử dụng một cái tên để đặt cho máy tính có địa chỉ IP đó. Trên Internet, thay vì sử dụng địa chỉ IP, người ta dùng một cái tên gợi mở dễ nhớ để ánh xạ đến cái IP đó, gọi là tên miền (Domain). Domain ngoài nhiệm vụ xác định địa chỉ IP của một máy tính, nó còn được dùng để chỉ định cái máy tính đó thuộc vùng (miền) nào quản lý. Ở đây có một số nhóm chính:

    + Các đuôi .com: Là tên miền dành cho các công ty (com: company)
    + Các đuôi .org: Là tên miền dành cho các tổ chức, chính phủ (org: organize)
    + Các đuôi .net: Tên miền dành cho các nhóm làm việc trên mạng
    .
    Ngoài ra, mỗi nước được mặc định có một tên miền riêng, chẳng hạn như Mỹ là .us, Anh là .uk Việt Nam là .vn
    Ví dụ: www.vnn.vn, hay mail.yahoo.com

    Chúng ta cũng nên biết thêm một khái niệm nữa, đó là chuỗi định vị tài nguyên URL(Uniform Resource Locator). URL xác định vị trí của một trang web đặt trên máy chủ. Nó thường có dạng http://ten_may_chu/ten_duong_dan_den_file. Ví dụ: http://www.yahoo.com/test/index.htm

    Bây giờ đến khái niệm máy khách. Đơn giản thôi, nó là một máy tính và khi nó kết nối đến một máy chủ nào đó, nó sẽ trở thành một máy khách của máy chủ đó. Bạn hãy tưởng tượng cái máy chủ như là một cái ổ cắm điện, có nhiều lỗ cắm. Còn các máy khách là các phích cắm, khi cần thì nó cắm (kết nối) vào máy chủ, còn khi không cần đến máy chủ nữa, thì nó rút ra (ngắt kết nối).

    Các máy khách và máy chủ liên lạc với nhau thông qua các quy định đặc biệt gọi là các giao thức mạng. Chúng là tập hợp các quy tắc được thống nhất giữa máy chủ và máy khách, để sao cho chúng có thể hiểu lẫn nhau. Nếu không có các quy tắc này, chúng sẽ đại loại như là ông nói gà, bà nói vịt vậy! Giao thức mạng hay dùng nhất là giao thức TCP/IP. Thực chất nó là sự tổ hợp của 2 giao thức con là giao thức TCP và giao thức IP. Giao thức này đảm bảo cho dữ liệu được truyền tải đúng và thông suốt từ máy nọ đến máy kia. Còn việc xử lý dữ liệu như thế nào thì lại do các phần mềm khác quy định khuôn dạng dữ liệu. Chúng cũng được gọi là giao thức (hic lằng nhằng quá), nhưng lại là kiểu khác. Để dễ hình dung, tôi xin đưa ra một ví dụ: Máy tính A gửi đến máy tính B chuỗi hello, giao thức TCP/IP chỉ đảm bảo rằng máy tính B sẽ nhận được chuỗi hello, nhưng nó chẳng thèm quan tâm đến chuỗi này sẽ được máy tính B xử lý thế nào. Việc xử lý chuỗi hello ra sao, là do quy định của cả máy A và máy B. Chẳng hạn nếu máy A gửi chuỗi hello này đến máy B, và người lập trình quy định sẵn nếu máy A gửi chuỗi hello thì máy B sẽ phải làm một việc gì đó, ví dụ như gửi trả lại chuối tôi đây, thì phần sau công việc (gửi trả lại chuỗi tôi đây) là do một hệ thống khác (không phải là TCP/IP) xử lý. Công việc sau đó chính là cái giao thức vô danh kia. Tất nhiên trong một số trường hợp, chúng cũng có tên tuổi đàng hoàng, như giao thức http hay giao thức ftp chẳng hạn. Tôi tạm gọi chúng là các giao thức con dựa trên nền giao thức TCP/IP.

    Liên quan đến giao thức TCP/IP, ta còn phải đối đầu với một khái niệm nữa là cổng dịch vụ. Mỗi cổng dịch vụ thường quy định một chức năng riêng (đi kèm với một giao thức con xác định. Chẳng hạn cổng 80 thường dành cho các dịch vụ Web (dùng giao thức có tên là http), cổng 21 dành cho các dịch vụ truyền tải file FTP (dùng giao thức ftp), cổng 110 dành cho các dịch vụ POP (sử dụng giao thức pop) Các máy muốn nói chuyện với nhau thì phải thống nhất được giao thức và cổng dịch vụ.Ở đây tôi chỉ giới thiệu sơ qua, đủ để cho các bạn sử dụng sau này. Còn nếu đi sâu vào chi tiết, chắc tôi phải type sái tay mất Các thông số kỹ thuật khác thường liên quan đến các kỹ thuật lập trình ứng dụng mạng (chẳng hạn như xây dựng web server) và thường là các tài liệu dày cộp . Nếu bạn nào muốn đi sâu vào tìm hiểu thế giới mạng, xin hẹn các bạn vào một giáo trình khác. Hoặc các bạn có thể tự tìm kiếm trên Net.

    Bây giờ tôi xin nói đến khái niệm trình duyệt. Chắc các bạn đã biết tỏng nó là cái gì rồi. Vâng, nó chính là cái chương trình Internet Explorer đáng nguyền rủa (hay bị treo, hoặc thỉnh thoảng nó hiện ra những cái quỷ sứ gì, có trời mà đọc được) đó. Về mặt kỹ thuật, nó là một chương trình dạng Client. Chúng kết nối đến các máy chủ cung cấp dịch vụ Web thông qua cổng 80, và tuân theo một giao thức quy tắc xử lý lệnh gọi là http (HyperText Transfer Protocol - Giao thức truyền tải siêu văn bản). Các bạn có thể gặp một trình duyệt khá phổ biến khác là Nescape Navigator.

    Và để kết thúc phần này, tôi xin trình bày khái niệm Web server. Đó chính là các chương trình quản lý các trang Web được thi hành trên các máy chủ cung cấp dịch vụ Web đó. Hãy để ý ở trên, trình duyệt dùng cổng 80 để kết nối đến các máy chủ cung cấp dịch vụ Web, chắc các bạn nhận ra ngay rằng các Web server sử dụng cổng 80,và dùng giao thức http. Khi trình duyệt cần lấy một trang Web trên một máy chủ nào đó, nó sẽ gửi yêu cầu theo chuẩn giao thức http đến máy chủ. Máy chủ sau đó sẽ chuyển đến chương trình Web Server. Web server sẽ phân tích yêu cầu nhận được, xử lý nó và gửi trả kết quả về cho trình duyệt.

    Chú ý rằng trong lĩnh vực lập trình Web, người ta thường đồng nhất trình duyệt với máy khách, và chương trình Web server với máy chủ quản lý Web!

    II. Trang Web tĩnh và Trang Web động

    Bạn đã từng xây dựng một trang Web và đưa nó lên mạng? Trang web của bạn thật là thú vị (ít nhất là theo ý nghĩ của bạn ) và tất nhiên bạn muốn tham khảo ý kiến của người đọc? Chẳng nhẽ bạn lại cho số điện thoại và yêu cầu người góp ý phải gọi điện đến? Hic Đảm bảo sẽ chẳng có ma nào thèm gọi điện.Bạn muốn xin một ít thông tin về người duyệt Web hic. Làm cách nào bây giờ???Vâng, đó chính là nhược điểm của cái gọi là trang web tĩnh. Đó là các trang Web không cho phép bạn có thể tương tác với người dùng (chẳng hạn như là trao đổi hay thu thập các thông tin từ phía người dùng). Nó là các trang web có đuôi *.htm thông thường. Ngược lại, các trang Web động cho phép bạn nhận thông tin từ người dùng, xử lý thông tin đó, và có thể đáp trả lại các yêu cầu của họ. Xem ra nó cũng linh động ra phết đấy chứ?Để làm được điều đó, tất nhiên là bạn phải theo dõi các bài viết này

    III. Lập trình Script

    Các trang web nguyên thuỷ sử dụng ngôn ngữ định dạng chuẩn là HTML (HyperText Markup Language). HTML chuẩn chỉ bao gồm các cặp thẻ đánh dấu để định khuôn dạng của tài liệu. Tuỳ theo tên thẻ là gì mà trình duyệt sẽ tự động hiểu và làm các công việc do thẻ đó quy định. Chẳng hạn như cặp thẻ . quy định đoạn văn bản trong đó sử dụng chữ đậm. Vì vậy, trên thực tế người ta không coi nó là một ngôn ngữ (vì nó chẳng liên quan gì đến những thứ mà ta hay gặp trong lập trình như biến, câu lệnh rẽ nhánh, lặp ). Cũng chính vì nguyên nhân này, nó phải tự mở rộng bằng cách cho phép nhúng vào bản thân nó một số đoạn mã lệnh chương trình đặc biệt, người ta thường gọi chúng là các đoạn mã Script hay các đoạn mã nhúng . Ngôn ngữ sử dụng trong các đoạn mã lệnh đó gọi là các ngôn ngữ Script. Các ngôn ngữ script thường đơn giản và không có nhiều sức mạnh như các ngôn ngữ kinh điển cùng tên, hay nói cách khác, chúng là một phần rất nhỏ của một ngôn ngữ nào đó được tích hợp vào trình duyệt để thực hiện một số thao tác nhất định.Chi tiết về ngôn ngữ HTML đã có đầy rẫy trên Internet, cũng như ở các hiệu sách, nên chúng không được nhắc lại ở đây. Nếu các bạn chưa biết gì về nó thì bạn phải tìm đọc các tài liệu về HTML trước khi tiếp tục theo dõi khoá học này.

    Lập trình Script ở máy khách

    Như tên gọi của nó, lập trình script ở máy khách là viết các đoạn script chạy trên máy khách. Các đoạn mã này được máy chủ gửi kèm trong tài liệu, đưa về máy khách và được thực hiện ở đây.Trong tài liệu gửi về trình duyệt, các đoạn mã này thường được tìm thấy trong cặp thẻ .Có nhiều ngôn ngữ script phía máy khách. Nổi tiếng hơn cả là Javascript. Kế đến là VbScript và PerlScript.Vì giáo trình này chủ yếu tập trung vào PHP - một ngôn ngữ script chạy trên máy chủ, nên chi tiết những ngôn ngữ này không được nhắc đến trong giáo trình. Riêng về JavaScript, các bạn có thể tìm thấy các tài liệu tiếng Việt qua trang tìm kiếm Vinaseek.com. Nếu có thời gian, tôi khuyên các bạn nên tìm hiểu về chúng. Rất nhiều xảo thuật bắt mắt có thể tìm thấy trong các đoạn mã này.

    Lập trình Script ở máy chủ

    Trái ngược với lập trình Script ở máy khách (thực thi mã lệnh ở máy khách), lập trình script ở máy chủ cho phép thực thi các đoạn mã ngay ở trên máy chủ. Không như các đoạn mã script hoạt động ở máy khách, các tài liệu có chứa các đoạn mã script phía máy chủ thường được lưu ở các file tài liệu có đuôi mở rộng riêng biệt, và các đoạn mã thi hành trên máy chủ cũng phải được đặt trong một cặp thẻ đặc biệt tuỳ theo quy định của chương trình xử lý.

    Chú ý rằng đối với mỗi loại ngôn ngữ server script sẽ có một chương trình xử lý riêng. Chẳng hạn các đoạn mã ASP thường được đặt trong các file *.asp, và chúng được xử lý bằng file ASP.dll. Chi tiết về cách thức hoạt động của loại này, có thể tóm tắt như sau:

    - Bước 1: Client gửi yêu cầu đến máy chủ web (Web server)
    - Bước 2: Web server kiểm tra xem yêu cầu đó cần loại tài liệu nào. Nếu đó là loại tài liệu có chứa các đoạn mã server script, nó sẽ triệu gọi chương trình xử lý tương ứng với loại tài liệu đó.
    - Bước 3: Chương trình xử lý sẽ thực thi các đoạn mã server script trong tài liệu đó, và trả kết quả (thường là dưới khuôn dạng HTML) về cho web server.
    - Bước 4: Web server trả kết quả tìm được cho Client và ngắt kết nối.

    Lịch sử phát triển các ứng dụng trên Web server. ASP, JSP và PHP

    Vài năm trước đây, con đường thực sự duy nhất để vận chuyển các dữ liệu động tới trang Web là kỹ thuật CGI (Common Gateway Interface). Các chương trình CGI cung cấp một sự liên hệ đơn giản để tạo các ứng dụng Web cho phép tiếp nhận các dữ liệu nhập vào, các yêu cầu truy vấn cơ sở dữ liệu từ phía người dùng và trả một vài kết quả về cho trình duyệt. Các chương trình CGI có thể được viết trên một vài ngôn ngữ, trong đó phổ biến nhất là Perl. Web server sử dụng CGI như là một cổng truy cập chặn giữa yêu cầu của người dùng và dữ liệu được yêu cầu. Nó sẽ được nạp vào bộ nhớ như một chương trình bình thường. Thông thường các web server sẽ chuyển các yêu cầu và triệu gọi chương trình CGI. Sau khi chương trình kết thúc, web server sẽ đọc dữ liệu trả về từ chương trình và gửi nó đến trình duyệt. Nhược điểm lớn nhất của kỹ thuật CGI là nó hoạt động kém hiệu quả. Mỗi khi web server nhận một yêu cầu, một tuyến trình mới được tạo ra. Mỗi tuyến trình lại chứa trong nó các đoạn mã lệnh, dữ liệu và không được chia sẻ lẫn nhau, do đó gây ra lãng phí bộ nhớ. Để khắc phục nhược điểm này, Microsoft và Netscape đã hợp tác và đưa ra một cải tiến đáng kể là chuyển chúng về dạng các file thư viện liên kết động (DLL ), cho phép chia sẻ mã lệnh giữa các tuyến trình. Đây chính là các kỹ thuật ISAPI và NSAPI. Đen đủi thay, các kỹ thuật dựa trên DLL không phải là đã hoàn thiện. Chúng vẫn còn một số vấn đề:

    - Khi các thư viện nền tảng được gọi, nếu muốn thoát các ứng dụng này, ta phải tắt chương trình triệu gọi (Web server) và khởi động lại máy tính.
    - Các thư viện cần được đặt trong các tuyến trình bảo vệ, tức là chúng cần phải được cảnh giác về cách sử dụng các biến chung hoặc các biến tĩnh.
    - Nếu chương trình triệu gọi gây ra lỗi truy cập, nó có thể dẫn đến tình trạng server bị treo tắc tử.
    - Và cuối cùng: khi đã được dịch ra các file DLL, công việc gỡ lỗi cũng như bảo trì mã lệnh trở nên vất vả hơn bao giờ hết.

    Kỹ thuật Web mới nhất của Microsoft, kết hợp HTML, các đoạn Script, các thành phần xử lý phía server trong cùng một file, được gọi là ASP (Active Server Pages), với phiên bản mới nhất hiện nay là ASP.Net. ASP được triệu gọi bởi một thư viện liên kết động gắn với các Web server của Microsoft. Về bản chất, ta có thể coi ASP như là một ngôn ngữ thông dịch vậy. Một trang ASP có thể sử dụng HTML, JScript và VBScript. Qua các đoạn mã nhúng này, ASP có thể truy cập đến các thành phần phía server. Các thành phần này có thể được viết trên bất kỳ ngôn ngữ nào hỗ trợ các thành phần COM của Microsoft. Và đây chính là sức mạnh của ASP: Nó có thể làm được bất kỳ cái gì mà máy chủ có thể làm được với các thành phần COM. Sau khi được thi hành, ASP sẽ sản sinh ra một trang Web có khuôn dạng HTML và trả nó về cho Web server.

    Một bất lợi lớn đối với ASP là nó chỉ có thể hoạt động trên các họ Web server của Microsoft (bao gồm PWS trên Win9x hay IIS trên WinNT/2000/XP). Các nhà phát triển đang hướng đến những môi trường khác như Unix/Linux (hiện đã có bản Chili! ASP chạy trên các môi trường này), nhưng kết quả thì còn phải đợi thêm một thời gian nữa

    Trước khi đi vào tìm hiểu lịch sử của PHP, có lẽ chúng ta cũng phải nhắc đến một tên tuổi khác là Java Server Pages. hay JSP. Giống như ASP, trang JSP cho phép chứa HTML, các đoạn mã Java và các thành phần Java Bean và chúng sẽ thực hiện các công việc để sản sinh ra một trang Web để gửi về Client. Bất lợi chính của loại này là phải đi kèm với máy ảo Java, vốn không được coi là nhanh về mặt tốc độ.

    Lịch sử PHP

    PHP - viết tắt của PHP Hypertext Preprocessor - một định nghĩa đệ quy khó hiểu! Vào khoảng năm 1994, Rasmus Lerdorf đưa một số đoạn Perl Script vào trang Web để theo dõi xem ai đang đọc tài liệu của ông ta. Dần dần, người ta bắt đầu thích các đoạn Script này và sau đó đã xuất bản một gói công cụ có tên là Personal Home Pages (nghĩa đầu tiên của PHP). Ông ta đã viết một cơ chế nhúng và kết hợp với một số công cụ khác để phân tích đầu vào từ các mẫu biểu HTML: FI, Form Interpreter hay Phiên dịch mẫu biểu, được tạo ra theo cách đó và được đặt tên là PHP/FI hay PHP2. Nó được hoàn thành vào khoảng giữa năm 1995. Sau đó, người ta bắt đầu sử dụng các công cụ này để xây dựng những thứ rắc rối hơn, và đội ngũ phát triển đã thay đổi từ một người duy nhất thành một nhóm các nhà phát triển nòng cốt trong dự án, và nó đã được tổ chức hoá. Đó là sự bắt đầu của PHP3. Đội ngũ các nhà phát triển (Rasmus Lerdorf, Andi Gutmans, Zeev Suraski, Stig Bakken, Shane Caraveo và Jim Winstead) đã cải tiến và mở rộng bộ máy nhúng và bổ sung thêm một số hàm API đơn giản cho phép các lập trình viên khác tự do bổ sung nhiều tính năng vào ngôn ngữ bằng cách viết các module cho nó. Cấu trúc của ngôn ngữ đã được tinh chế, được kết cấu thân thiện hơn đối với những người đến từ các ngôn ngữ hướng đối tượng hay các ngôn ngữ hướng thủ tục. Nếu bạn đã biết một vài ngôn ngữ lập trình khác thì khi đến với PHP, bạn sẽ không cảm thấy khó khăn. Phiên bản hiện tại là PHP 4, dựa trên cơ chế bộ máy Zend. Cơ chế nhúng này được thiết kế dựa trên khả năng nhúng dễ dàng trong các ứng dụng khác nhau. PHP4 là ứng dụng đầu tiên sử dụng cơ chế Zend. Nhưng nó có thể bao gồm một số thành phần khác, như MySQL - để kết nối tới cơ sở dữ liệu MySQL. Bài sau sẽ hướng dẫn các bạn cách thức cài đặt PHP để chạy trên các hệ Web server khác nhau (Unix/Linux, Windows).

    Kết thúc bài này, tôi xin nhắc lại cách thức sử dụng mẫu biểu HTML - một thành phần quan trọng trong việc lấy thông tin từ phía người dùng.

    Mẫu biểu (Form) trong HTML Một form được đặt trong cặp thẻ . Thẻ form có một số thuộc tính sau:
    - action: Thuộc tính này chỉ định URL của trang mà form sẽ gửi dữ liệu đến. Nó có thể chứa một URL liên kết (VD: myscript.php, /newfolder/myscript) hoặc một URL hoàn chỉnh (VD: http://www.mysite.net/newfolder/myscript.php)
    - method: Thuộc tính này chỉ định kiểu yêu cầu HTTP mà trình duyệt sẽ gửi đến server. Nó phải được đặt là Get hoặc Post. Nếu bạn đặt nó là Get, cặp ten=giatri sẽ được xuất hiện trên thanh địa chỉ của trình duyệt. Lợi thế của phương thức Get là kết quả có thể được đánh dấu trên trình duyệt. Nếu bạn đặt nó thành Post, cặp dữ liệu sẽ không được nhìn thấy. Giá trị mặc định là Get.
    - name: Thuộc tính này sẽ rất hữu dụng để địa chỉ hoá form cũng như các thành phần khác nếu bạn sử dụng Java Script. Tên của form không được gửi lên server khi mẫu biểu được gửi đi.- enctype: Giá trị mặc định là application-x-www-form-urlencoded và nó vẫn hoạt động bình thường. Nhưng nếu bạn muốn upload một file (sử dụng



    Các thẻ Input

    Phần lớn các công việc của bạn đều được làm thông qua các thẻ . Thẻ Input thường có các thuộc tính:
    - Type: Kiểu thẻ
    - Name: Chỉ định tên của thẻ.
    - Value: Xác định giá trị của thẻ. Thuộc tính Type có các loại giá trị sau:
    + Text: xác định thẻ Input là một ô văn bản
    + Password: Gần giống như Text, nhưng văn bản được gõ vào sẽ chỉ hiển thị ra ký tự đặc biệt
    + Hidden: Kiểu thuộc tính này xác định thẻ không hiện trên màn hình. Nó được sử dụng để chuyển giá trị qua lại giữa các trang.

    Chú ý rằng bạn không nên đặt các thông tin nhạy cảm vào đây vì người sử dụng chỉ cần chọn View source là nội dung của các thẻ này sẽ bị phơi bày.

    - Submit: Chỉ định một nút bấm trên trang web. Khi bạn bấm vào nút này, dữ liệu sẽ được gửi đi. Tên và giá trị của nút bấm này cũng được gửi đi như các thành phần khác của form.
    - Image: Tương tự như Submit, nhưng nó cho phép bạn chỉ định một Image thay cho việc hiện ra một nút bấm thông thường.
    - Reset: Thuộc tính này chỉ định một nút bấm, khi bạn kích chuột vào nút bấm này, toàn bộ dữ liệu của form sẽ chuyển về trạng thái như khi được lấy về.
    - File: Xác định một ô văn bản và một nút bấm có chữ Browse trên nó. Khi bạn kích vào nút bấm này, hộp thoại chọn file sẽ hiện ra. Bạn dùng thuộc tính này nếu muốn upload một file nào đó lên server. Hãy nhớ rằng khi đó, thuộc tính enctype của thẻ form phải là multipart/form-data.

    Checkbox: Tên và giá trị của hộp checkbox sẽ chỉ được chuyển đi nếu hộp checkbox được đánh dấu. Nếu từ checked được xuất hiện trong thẻ, hộp checkbox sẽ được tự động đánh dấu.

    Radio: Nút Radio cho phép bạn chỉ chọn 1 trong các giá trị cho trước Thẻ Select Phần tử thẻ Select sẽ tạo ra một hộp kéo - thả. Nếu bạn bổ sung thêm từ :multiple vào thẻ select, người dùng có thể lựa chọn nhiều mục khác nhau từ hộp chọn. Bạn nên đặt thuộc tính size để xác định xem có bao nhiêu mục chọn sẽ được hiển thị.

    -------------------------
    Đăng tin bán nhà, mua nhà tại mua nha,ban nha.com
     

    Các file đính kèm:

Đang tải...