另一种数据提交方式

除了前面介绍的通过表单提交数据,我们还可以通过URL地址提交数据,格式为:

http://网页地址/?键1=值1&键2=值2&键3=值3

示例

将HttpRequest事件代码设置为:

Select Case e.Path
     Case "test.htm"
        Dim sb As New StringBuilder
        sb.AppendLine(
"
接收到的数据有:<br/><br/>")
        For Each key As String In e.Values.Keys
            sb.AppendLine(key & ":" & e.Values(key) & "<br/>")
        Next
        e.WriteString(sb.ToString)

End
Select

然后在浏览器中输入地址:

http://127.0.0.01/test.htm?product=foxtable&price=4688&count=2

可以看到Foxtable已经正确提取出URL网址中包括的数据:

这种数据提交方式,通常称为get方式,通过表单提交的方式,通常称为post方式。

当然你可以将表单的method属性设置为get,这样表单也可以采用get方式提交数据,但是没有必要,因为post方式更安全、更方便,一次可以提交更多的数据。

但是get方式也有自己的优势,就是轻量级,通常用于提交一些事先约定好的、不需要用户输入的数据。

混合Get和Post方式

其实Get和Post两种方式是可以混合使用的,例如我们将HttpRequest事件代码设置为:

Select Case e.Path
    Case "input.htm"
        Dim sb As New StringBuilder
       
sb.AppendLine("<form enctype='multipart/form-data' action='accept.htm?id=1&page=10' method='post'
id='form1' name='form1'>")
        sb.AppendLine(
"
产品: <input name='cp' id='cp'><br/><br/>")
        sb.AppendLine(
"
客户: <input name='kh' id='kh'><br/><br/>")
        sb.AppendLine(
"
数量: <input type='number' name='sl' id='sl'><br/><br/>")
        sb.AppendLine(
"
日期: <input type='date' name='rq' id='rq'><br/><br/>")
        sb.AppendLine(
"<input type='submit' name='sumbit' id='sumbit' value='
提交'>")
        sb.AppendLine(
"<input type='reset' name='reset' id='reset' value='
重置'>")
         sb.AppendLine("</form>")
        e.WriteString(sb.ToString)
    Case "accept.htm"
        Dim sb As New StringBuilder
        sb.AppendLine(
"
接收到的数据有:<br/><br/>")
        For Each key As String In e.Values.Keys
            sb.AppendLine(key & ":" & e.Values(key) & "<br/>")
        Next
        e.WriteString(sb.ToString)

End
Select

上述代码中,我们定义的表单的代码为:

<form action='accept.htm?id=1&page=10' method='post' name='form1'>

用户输入完成单击提交按钮后,会将输入结果提交到地址"accept.htm?id=1&page=10",这个地址包括id和page两个值。

所以当用户按下图所示输入数据:

然后单击提交按钮,提交到后台后,显示的内容会包括url地址中的内容,以及用户输入的内容:


本页地址:http://www.foxtable.com/mobilehelp/topics/0029.htm