Salad UN

To Taste The Salad Of Life.

« 一份测试报告结果KingCMS Feedback修改-增加ajax效果-可用于订单-2 »

KingCMS Feedback修改-增加ajax效果-可用于订单

[ At 2009-2-15 By Ash   14 comments ]

对于KingCMS的Feedback一直觉得比较鸡肋,字段少是一点,修改起来特别不方便,这次一个朋友的网站需要用到,于是做了一些修改。

先看看下图:

需要提交的字段特别多,而且这样的表有两个,另一个我就不贴了,大概说一下吧:

相同的部分是顶部的字段,也就是“客户资料”的部分两个表是一样的,下面具体提交的数据有些不一样。于是考虑将下面提交的数据全部放到留言的中的“内容”字段。虽然说FeedBack这个模块是可以复制出来然后再做另一个,但后台查看的时候就不方便了,于是考虑将两个表单提交的数据都是放到一个FeedBack下。如果用过FeedBack就知道,最后使用的文件是,page/feedback1/index.asp,修改这个的话比较麻烦,还需要修改语言包,这样那么多字段,20几个两个表单加起来40几个实在是很多。

于是打算的是用html提交form给asp文件,然后存入数据库,这里有几个问题

  • 一是html文件只能用js进行check字段的正确
  • 二是asp得到数据后还要check一遍
  • 三是错误信息是存在语言包里
  • 四是asp还要单独做模板,因为不可以用ssi
  • 五是数据存入后返回的问题

现在不是都用ajax对表单字段进行check了么,那我也修改一下让html直接读取asp然后返回错误信息。实际效果如下图,

 

错误信息都是语言包里的,直接读取过来了,现在来看看代码

<input id="company" style="border-right: 0px; border-top: 0px; border-left: 0px; width: 140px; border-bottom: 0px" name="company" type="text" onblur="javascript:posthtm('/page/Feedback/post.asp?action=check', 'company-show', 'checkid=1&company='+(this.value));"/>
<span id="company-show" class="small-table"></span>

我只贴一个字段就可以了,其他的只是参数不一样,形式都一样。解释一下:posthtm()是kingCMS自带的js函数,经过悟空的解释和对KingCMS其他相应地方的比对,大概知道怎么用了,第一个''里是传递参数的地址,第二个''是返回信息显示的层id,第三个''是传递的具体参数;<span id="company-show" class="small-table"></span>这里显示返回的参数。

写好了这个地方再去做post.asp文件,先直接复制一个index.asp文件

修改顶部

dim fb
set king=new kingcms
king.checkplugin king.path'检查插件安装状态
set fb=new feedback1  
 select case action
 case"check" king_check
 case"def" king_def
 end select

set fb=nothing
set king=nothing

高亮部分是修改的,原因是把字段检查和字段提交分成两个部分,'/page/Feedback/post.asp?action=check'这个部分提交的action是check,到了asp里就执行case"check" king_check了,接着贴上asp检查数据部分,基本还是参照KingCMS的方式来写的,另外我还加了一个参数,就是checkid=1,注意看注释

sub king_check()
 king.nocache
 if king.ismethod=false then king.txt king.lang("error/invalid")'
'获得表单的参数
 dim checkid,company,dept,name,tel,fax,email
'获得表单的checkid
    checkid=form("checkid")
    company=form("company")
 dept=form("dept")
 name=form("name")
 tel=form("tel")
 fax=form("fax")
 email=form("email")

'根据checkid来执行某一段数据检查
 dim checktext
 select case checkid
 case 1
'这里就是company字段的检查了
  checktext=king.check("company|6|"&encode(fb.lang("check/company"))&"|4-100")
 
 case 2
  checktext=king.check("dept|6|"&encode(fb.lang("check/dept"))&"|2-100")

 case 3

  checktext=king.check("name|6|"&encode(fb.lang("check/name"))&"|2-30")

 case 4

  checktext=king.check("tel|6|"&encode(fb.lang("check/tel"))&"|8-30")

 case 5
  checktext=king.check("fax|6|"&encode(fb.lang("check/fax"))&"|8-30")

 case 6
  checktext=king.check("email|6|"&encode(fb.lang("check/email"))&"|6-100;email|4|"&encode(fb.lang("check/email")))

 end select

 if len(checktext)=0 then
 king.txt king.lang("√")
 else 
 king.txt king.lang(checktext) 
 end if 

end sub

这样第一步解决了,是对关键字段的检查。数据提交方法类似,但我也碰到一些问题,下次再写了。

 

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Spirit Build 80722 Code detection by Codefense

Copyright 2008 www.s-un.cn. Some Rights Reserved.