接收表单数据

多数时候,用户是通过表单输入数据的,表单类似于Foxtable的窗口。

定义表单

表单用<form>标签开始,用</form>标签结束,中间是各种输入元素。
下面是一个表单的定义,表单名为form1,数据提交方式为post,数据接收页面是accept.htm:

<form action='accept.htm' enctype='multipart/form-data' method='post' id='form1' name='form1'>

</form>

提示:表单的action属性是一个网页地址,用户输入完成后单击提交按钮,会将表单数据提交到这个网页。

Values属性

HttpRequest事件e参数有个Values属性,这是一个字典,包括所有用户提交的数据,键为输入元素的name属性,值就是输入元素的值。

一个例子

我们下面用一个例子看看Foxtable是如何定义表单和接收表单数据的,将HttpRequest事件代码设置为:

Select Case e.Path
    Case "input.htm"
        Dim sb As New StringBuilder
        sb.AppendLine("<form action='accept.htm' enctype='multipart/form-data' 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='dj' id='dj'><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='password' name='mm' id='mm'><br/><br/>")
        sb.AppendLine(
"
支付方式: <br/>")
        sb.AppendLine(
"<input type='radio' name='fs' id='fs1' value = '
支付宝' checked>支付宝") '注意同一组的radio,name属性相同,id属性不同
        sb.AppendLine(
"<input type='radio' name='fs' id='fs2' value = '
微信'>微信")
        sb.AppendLine(
"<input type='radio' name='fs' id='fs3' value = '
微信'>网银<br/><br/>")
        sb.AppendLine(
"
会员: <input type='checkbox' name='hy' id='hy'><br/><br/>")
        sb.AppendLine(
"<input type='submit' name='sumbit' id='sumbit' value='
提交'>")
        sb.AppendLine(
"<input type='reset' name='reset' id='reset' value='
重置'>")
        sb.AppendLine(
"<input type='button' name='foxtble' id='foxtable' value='Foxtable
主页' onclick='location=""http://www.foxtable.com""'>")
        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

这个代码生成了两个页面,第一个页面input.htm是一个表单,用于输入数据,这个表单展示了最常用的输入类型:

用户单击提交按钮后,会将输入的数据提交到第二个页面accept.htm,该页面将收到的数据回写到客户端浏览器:

建议你以后开发系统的时候,都先用上面的方法,实际测试一下表单所提交的数据内容和格式。

需要注意的是,只有已经输入数据的输入框,以及已经勾选的radio和checbox,才会被提交到服务器,也就是说:

1、没有数据的空白输入框,不会提交到服务器。
2、没有勾选的radio和checkbox,也不会提交到服务器。


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