开发环境: 1.VFP SP2 7423 2.祺佑三层开发框架 学BS就要先学本质,不要被花式迷了眼,本来是学BS开发的,结果一直在CSS化妆术里面打圈。
界面如图,
人员信息维护 输入姓名和年龄之后,点击保存,页面显示保存成功。
<form action="ctl_ryxx_edit.fsp">
姓名<input type="text" name="name" value="">
年龄<input type="text" name="age" value="">
<input type="hidden" name="ispostback" value="1">
<input type="submit" value="保存" />
<input type="reset" value="撤消" />
</form>
在这里猫猫多加了一下隐藏文本框,这个框的name value是可以被提交的
ispostback的作用 把它提交给后端,后端就可以区分是第一次加载,还是第二次加载了。 怎么区分呢? 后端有收到这个值,就说明是第二次加载了,没有则是第一次。 这个参数,实际在ASP.NET的webform技术中也有,作用一模一样。不要以为其它技术就一定很先进。
VFP代码
运行执行效果
执行效果
思路如下:
(新增和修改做在一个页面中)
<form action="ctl_ryxx_edit.fsp">
姓名<input type="text" name="name" value="<%=u(name)%>">
年龄<input type="text" name="age" value="<%=u(age)%>">
id<input type="text" name="id" value="<%=u(id)%>" readonly="true">
<input type="hidden" name="ispostback" value="1">
<input type="submit" value="保存" />
<input type="reset" value="撤消" />
</form>
设置input的readonly的属性让ID只读,
加载页面代码 ispostback首次加载是没有值的
保存代码 注意用id的值来判断是新增,还是修改。 其实私有工作期session类是会自动关闭表的。
执行结果
执行结果
这个最简单,不需要前端HTML页面,只需用GET方式调用即可 ctl_ryxx_del.fsp?id=要删除的ID
VFP删除代码
注意看地址栏
执行结果
增删查改
后端代码调整一下,默认显示所有记录
<form action="ctl_ryxx.fsp" method="post">
请查询<input type="text" name="tj" value="<%=u(cTj)%>">
<input type="submit" value="查询">
<a href=“ctl_ryxx_edit.fsp”>新增</a>
</form>id 姓名 年龄<br>
<% scan %>
<%=u(id)%> <%=u(name)%> <%=u(age)%>
<a href=“ctl_ryxx_edit.fsp?id=<%=u(id)%>”>修改</a>
<a href="ctl_ryxx_del.fsp?id=<%=u(id)%>">删除</a>
<br /> <% endscan%>
修改和删除是利用a 标签 用GET方式调用后端VFP方法
功能执行都没有什么问题, 唯一的问题是,返回只是保存成功,删除成功的字样。我们需要直接返回到查询页面。
后端FSP执行如下代码,即可通知前端浏览器跳转
HttpRedirect(url, this.iconnid )
url:需要跳转的URL
this.iconnid代表当前http连接id(必写)
稍稍改改一下代码
return “保存成功”
改为
HttpRedirect("ctl_ryxx.fsp",this.iconnid)
比较完善的增删查改的页面就完成啦,撒花!
用VFP的人,有专业的,有非专业了,很多人其实是小白,问出的问题是小白,如果问题不对,我们引导他们问正确的问题。无论如何请不要嘲笑他们说帮助都不看,这么简单的问题都不会,嘲笑别人不行,而无法提出建设性答案,是很low的。
我们无论工作需要,还是有自己的软件,都是是需要真正的知识,如何让更多人学习真正的VFP知识呢,只需要点赞,在看,能转发朋友圈就更好了。
加菲猫的vfp倡导用"VFP极简混合开发,少写代码、快速出活,用VFP,但不局限于VFP,各种语言混合开发"。