Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: Mô phỏng nút submit trong HTML bằng VC++?

  1. #1
    Ngày gia nhập
    07 2010
    Nơi ở
    chỗ kín
    Bài viết
    446

    Mặc định Mô phỏng nút submit trong HTML bằng VC++?

    ví dụ em có một trang html thế này

    Code:
    <html>
    <body>
    <form method="POST">
    <p style="margin-top: 0; margin-bottom: 0">
      Nhập a:<input type="text" name="a" size="20"></p>
      <p style="margin-top: 0; margin-bottom: 0">
      Nhập b:<input type="text" name="b" size="20"></p>
      <p style="margin-top: 0; margin-bottom: 0">
      <input type="submit" value="Tính" name="B1"></p>
    </form>
    </body>
    </html>
    khi nhấn vào nút submit, trình duyệt tự lấy và tự gửi thông tin đi, các anh có thể cho em biết thông tin gửi đi theo fomat nào, và nếu ko có trình duyệt thì mình dùng hàm gì để gửi đến serve ạ(coi như đã có toàn bộ dữ liệu, em chỉ mắc ở chỗ gửi đi thôi), thanks.

  2. #2
    Ngày gia nhập
    10 2009
    Nơi ở
    Close All
    Bài viết
    993

    Trích dẫn Nguyên bản được gửi bởi pkthanh92 Xem bài viết
    ví dụ em có một trang html thế này

    Code:
    <html>
    <body>
    <form method="POST">
    <p style="margin-top: 0; margin-bottom: 0">
      Nhập a:<input type="text" name="a" size="20"></p>
      <p style="margin-top: 0; margin-bottom: 0">
      Nhập b:<input type="text" name="b" size="20"></p>
      <p style="margin-top: 0; margin-bottom: 0">
      <input type="submit" value="Tính" name="B1"></p>
    </form>
    </body>
    </html>
    khi nhấn vào nút submit, trình duyệt tự lấy và tự gửi thông tin đi, các anh có thể cho em biết thông tin gửi đi theo fomat nào, và nếu ko có trình duyệt thì mình dùng hàm gì để gửi đến serve ạ(coi như đã có toàn bộ dữ liệu, em chỉ mắc ở chỗ gửi đi thôi), thanks.
    Sâu bên trong vẫn là Socket thôi.
    Ban xem HTTP để biết.

  3. #3
    Ngày gia nhập
    10 2010
    Nơi ở
    Unallocated Memory
    Bài viết
    47

    Cái này phụ thuộc vào thuộc tính encrypt của form.
    Theo w3c thì thuộc tính encrypt:
    application/x-www-form-urlencoded: All characters are encoded before sent (this is default)
    multipart/form-data: No characters are encoded. This value is required when you are using forms that have a file upload control
    text/plain: Spaces are converted to "+" symbols, but no special characters are encoded
    Theo mặc định, encrypt là application/x-www-form-urlencoded
    Trong trường hợp này, form của bạn sẽ gửi dữ liệu như sau:
    a=valuea&b=valueb\r\n
    Nghìn dặm phong ba cách tiếng lòng
    Vạn sầu thương nhớ nỗi hư không
    Nhìn phương xa ấy, mình ta ngóng
    Cố với tay theo một bóng hồng

  4. #4
    Ngày gia nhập
    07 2010
    Nơi ở
    chỗ kín
    Bài viết
    446

    @tauit: em chưa muốn đi vào lập trình cấp thấp trong winsock, trình độ em mới chỉ đang lở lửng trên lưng wininet thôi, dù sao cũng cám ơn anh.

    @puss: cái a=valuea&b=valueb\r\n thì em hiểu rồi, nhưng còn cái "application/x-www-form-urlencoded" có phải là header không anh, thanks.

  5. #5
    Ngày gia nhập
    10 2009
    Nơi ở
    Close All
    Bài viết
    993

    Trích dẫn Nguyên bản được gửi bởi pkthanh92 Xem bài viết
    @tauit: em chưa muốn đi vào lập trình cấp thấp trong winsock, trình độ em mới chỉ đang lở lửng trên lưng wininet thôi, dù sao cũng cám ơn anh.

    @puss: cái a=valuea&b=valueb\r\n thì em hiểu rồi, nhưng còn cái "application/x-www-form-urlencoded" có phải là header không anh, thanks.
    Uh. nó là phần header Content-Type của Request

  6. #6
    Ngày gia nhập
    07 2010
    Nơi ở
    chỗ kín
    Bài viết
    446

    Mặc định Mô phỏng nút submit trong HTML bằng VC++?

    cám ơn anh,

    bây giờ nếu em có đoạn code thế này:

    Code:
    <SELECT style="WIDTH: 227px" id=ctl00_ctl04_cbAcademicUnit 
    onchange="javascript:setTimeout('__doPostBack(\'ctl00$ctl04$cbAcademicUnit\',\'\')', 0)" 
    name=ctl00$ctl04$cbAcademicUnit> 
        <OPTION selected value=""> </OPTION> 
        <OPTION value=""></OPTION> 
        <OPTION             value = A >    AAAA    </OPTION> 
        <OPTION             value = B >    BBBB     </OPTION> 
        <OPTION selected    value = C >    CCCC    </OPTION> 
        <OPTION             value = D >    DDDD    </OPTION> 
        <OPTION             value = E >    EEEE     </OPTION> 
    </SELECT>
    đoạn trên nó đặt tên cho combo box là ctl00$ctl04$cbAcademicUnit, không có dấu ngoặc kép, điều này có hợp lệ ko ?, và nếu hợp lệ, khi submit thông tin gửi đi có phải là ctl00$ctl04$cbAcademicUnit=C không ạ, thanks.

  7. #7
    Ngày gia nhập
    10 2010
    Nơi ở
    Unallocated Memory
    Bài viết
    47

    Trích dẫn Nguyên bản được gửi bởi pkthanh92 Xem bài viết
    cám ơn anh,

    bây giờ nếu em có đoạn code thế này:

    Code:
    <SELECT style="WIDTH: 227px" id=ctl00_ctl04_cbAcademicUnit 
    onchange="javascript:setTimeout('__doPostBack(\'ctl00$ctl04$cbAcademicUnit\',\'\')', 0)" 
    name=ctl00$ctl04$cbAcademicUnit> 
        <OPTION selected value=""> </OPTION> 
        <OPTION value=""></OPTION> 
        <OPTION             value = A >    AAAA    </OPTION> 
        <OPTION             value = B >    BBBB     </OPTION> 
        <OPTION selected    value = C >    CCCC    </OPTION> 
        <OPTION             value = D >    DDDD    </OPTION> 
        <OPTION             value = E >    EEEE     </OPTION> 
    </SELECT>
    đoạn trên nó đặt tên cho combo box là ctl00$ctl04$cbAcademicUnit, không có dấu ngoặc kép, điều này có hợp lệ ko ?, và nếu hợp lệ, khi submit thông tin gửi đi có phải là ctl00$ctl04$cbAcademicUnit=C không ạ, thanks.
    Theo qui ước của w3c thì giá trị của một attribute như sau:
    Literal data is any quoted string not containing the quotation mark used as a delimiter for that string. Literals are used for specifying the content of internal entities (EntityValue), the values of attributes (AttValue), and external identifiers (SystemLiteral). Note that a SystemLiteral can be parsed without scanning for markup.

    AttValue ::= '"' ([^<&"] | Reference)* '"'
    Reference là một số điều luật khác.

    Nhìn vào đây bạn có thể thấy dữ liệu của một attribute value cần phải được đặt trong dấu nháy kép. Tuy nhiên đây chỉ là qui ước, hầu hết các trình duyệt hiện nay đều hoạt động mà không cần dấu nháy kép, thậm chí bạn không cần đóng các tag html lại thì trình duyệt vẫn chạy bình thường. Nhưng nếu muốn viết một tài liệu html "well formed" thì cần phải tuân thủ các điều luật này.

    Theo qui ước của w3c thì việc đặt giá trị cho thuộc tính name như sau:
    An Nmtoken (name token) is any mixture of name characters.

    Names and Tokens

    [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender
    [5] Name ::= (Letter | '_' | ':') (NameChar)*
    [6] Names ::= Name (S Name)*
    [7] Nmtoken ::= (NameChar)+
    [8] Nmtokens ::= Nmtoken (S Nmtoken)*
    Điều này có nghĩa là:
    1. Ký tự đầu tiên phải là một chữ cái, một dấu gạch dưới "_", hoặc hai dấu ":"
    2. Các ký tự tiếp theo có thể là: chữ cái, số, dấu chấm ".", gạch dưới "_", dấu hai chấm ":", dấu gạch ngang "-", các ký tự kết hợp, các ký tự mở rộng (unicode)

    Quay trở lại câu hỏi của bạn, bạn nên sửa lại là name="ctl00$ctl04$cbAcademicUnit" thì sẽ đạt chuẩn của w3c đề ra. Tuy nhiên điều này là không bắt buộc.

    Khi submit, thông tin gửi đi sẽ hơi "biến dạng" một chút ví trong thuộc tính name của bạn có ký tự kết hợp là "$", vì vậy khi submit nó sẽ chuyển ký tự "$" về mã ascii, cụ thể thông tin submit lên host sẽ như sau:
    ctl00%24ctl04%24cbAcademicUnit=C

    (%24 là mã hex của ký tự $)
    Nghìn dặm phong ba cách tiếng lòng
    Vạn sầu thương nhớ nỗi hư không
    Nhìn phương xa ấy, mình ta ngóng
    Cố với tay theo một bóng hồng

Các đề tài tương tự

  1. Làm sao đưa dữ liệu vào csdl khi bấm nút submit trên 1 form bằng jquery
    Gửi bởi tinhthanhiepsi9x trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 21-11-2012, 11:37 AM
  2. lỗi Object reference not set to an instance of an object. khi submit form dùng Html.DropDownList
    Gửi bởi tuanngocpt trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 0
    Bài viết cuối: 03-05-2012, 04:02 AM
  3. Trả lời: 2
    Bài viết cuối: 18-04-2012, 04:04 PM
  4. Cấu trúc dữ liệu Thêm nút và In nút trong binary tree, ai giúp em với.
    Gửi bởi HacAmThienThan trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 5
    Bài viết cuối: 24-10-2011, 04:12 PM
  5. Sự kiện Click nút Next và nút Previous trong code WMP dùng WMPLib
    Gửi bởi hocphp_1998 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 15-12-2010, 09:24 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn