function doChange(){
var createdate=$f("acreatedate").value;
var serverdate= getcurrentdate();
checkDate(createdate,serverdate);
var url="ajaxAction.do?method=json&common=checkLog&classes=log.LogBo&createdate="+createdate;
new Ajax.AjaxRequest(url,doChangeRel,"",null,null);
}function doChangeRel(){
var resonsetext=this.req.responseText;
//this.req.responseText=escape(resonsetext);
var rs = AnalysisJSON(this.req.responseText);
var createdate=$f("acreatedate").value;
var bcurdate = beforecurdate();
if(!rs){
return;
}
if(Datefirst(createdate,bcurdate)){
if(rs.resultSet.length==0){
alert("你不能选择过去的日期写新日志!");
clearFormByElements(logform,"acreatedate,atitle,acont");
return false;
}
}
if(rs.RETCODE != "0000"){
alert(rs.RETMSG);
return;
}else{
if(rs.resultSet.length > 0){
$f("atitle").value = rs.resultSet[0].title;
var reg=new RegExp("<br>","g");
var ac = rs.resultSet[0].cont;
ac = ac.replace(reg,"\r\n");//转换换行符
$f("acont").value = ac;
}else{
$f("atitle").value="";
$f("acont").value ="";
}
}
}
上面这段是我的js 下面还有一段后台的代码
private ServiceResult checkLog() throws Exception{
try{
LoginInfoVo login = (LoginInfoVo)request.getSession().getAttribute(Constans.LOGIN_USER);
String staffId=login.getStaffID();
String createdate=request.getParameter("createdate");
StringBuffer sql=new StringBuffer("select logid,title,replace(cont,'\r\n','<br>') as cont from fitdoa.tb_oa_log where staffid='");
sql.append(staffId).append("' ");
if(!"".equals(createdate)){
sql.append(" and createdate='").append(createdate).append("'");
}
logger.info(sql.toString());
connection();
ServiceResult sr = util.query(sql.toString());
sr.put("RETCODE", "0000");
close();
return sr;
}catch(Exception e){
close();
logger.error("查询单个日志信息失败!",e);
return ServiceResultImp.getCallMsg("0001","取单个日志信息失败!"+e.toString());
}
}
我的代码是这样执行的 根据登录的员工号,和员工选择的日期把 员工那天写的日志查出来显示在文本框和文本区里面我传进去的日志是这样的insertSql="insert into fitdoa.tb_oa_log_check(logid) values('"+logid+"')";这个是用ajax动态执行的 我传进去的日志是这样的当js执行后 我后台能看到日志的内容是这样的 [color=#FF0000"RETCODE":"0000","cols":"3","rows":"1","resultSet":[{"logid":"AB200912250000000056","title":"双引号测试","cont":"insertSql="insert into fitdoa.tb_oa_log_check(logid) values('"+logid+"')";"}][/color]
但是页面上显示不出来内容 最后查出来是这句话var rs = AnalysisJSON(this.req.responseText);的问题也就是这句话有问题:eval("rsData="+responseText); 大家能不能帮我看看 怎么解决 因为那个responseText是动态读取员工写的日志 所以我不可能说避免单引号双引号那些东西 我想试试用escape编码再反编码 各位能不能给我一个思路?
var createdate=$f("acreatedate").value;
var serverdate= getcurrentdate();
checkDate(createdate,serverdate);
var url="ajaxAction.do?method=json&common=checkLog&classes=log.LogBo&createdate="+createdate;
new Ajax.AjaxRequest(url,doChangeRel,"",null,null);
}function doChangeRel(){
var resonsetext=this.req.responseText;
//this.req.responseText=escape(resonsetext);
var rs = AnalysisJSON(this.req.responseText);
var createdate=$f("acreatedate").value;
var bcurdate = beforecurdate();
if(!rs){
return;
}
if(Datefirst(createdate,bcurdate)){
if(rs.resultSet.length==0){
alert("你不能选择过去的日期写新日志!");
clearFormByElements(logform,"acreatedate,atitle,acont");
return false;
}
}
if(rs.RETCODE != "0000"){
alert(rs.RETMSG);
return;
}else{
if(rs.resultSet.length > 0){
$f("atitle").value = rs.resultSet[0].title;
var reg=new RegExp("<br>","g");
var ac = rs.resultSet[0].cont;
ac = ac.replace(reg,"\r\n");//转换换行符
$f("acont").value = ac;
}else{
$f("atitle").value="";
$f("acont").value ="";
}
}
}
上面这段是我的js 下面还有一段后台的代码
private ServiceResult checkLog() throws Exception{
try{
LoginInfoVo login = (LoginInfoVo)request.getSession().getAttribute(Constans.LOGIN_USER);
String staffId=login.getStaffID();
String createdate=request.getParameter("createdate");
StringBuffer sql=new StringBuffer("select logid,title,replace(cont,'\r\n','<br>') as cont from fitdoa.tb_oa_log where staffid='");
sql.append(staffId).append("' ");
if(!"".equals(createdate)){
sql.append(" and createdate='").append(createdate).append("'");
}
logger.info(sql.toString());
connection();
ServiceResult sr = util.query(sql.toString());
sr.put("RETCODE", "0000");
close();
return sr;
}catch(Exception e){
close();
logger.error("查询单个日志信息失败!",e);
return ServiceResultImp.getCallMsg("0001","取单个日志信息失败!"+e.toString());
}
}
我的代码是这样执行的 根据登录的员工号,和员工选择的日期把 员工那天写的日志查出来显示在文本框和文本区里面我传进去的日志是这样的insertSql="insert into fitdoa.tb_oa_log_check(logid) values('"+logid+"')";这个是用ajax动态执行的 我传进去的日志是这样的当js执行后 我后台能看到日志的内容是这样的 [color=#FF0000"RETCODE":"0000","cols":"3","rows":"1","resultSet":[{"logid":"AB200912250000000056","title":"双引号测试","cont":"insertSql="insert into fitdoa.tb_oa_log_check(logid) values('"+logid+"')";"}][/color]
但是页面上显示不出来内容 最后查出来是这句话var rs = AnalysisJSON(this.req.responseText);的问题也就是这句话有问题:eval("rsData="+responseText); 大家能不能帮我看看 怎么解决 因为那个responseText是动态读取员工写的日志 所以我不可能说避免单引号双引号那些东西 我想试试用escape编码再反编码 各位能不能给我一个思路?
解决方案 »
- 问:如何获取被嵌套元素?精确获取某元素下面的元素。
- jsp如何获取图片的值??急!
- 怎么样用javascript取XML标签的值?
- 页面导入javascript时的问题!!!大家帮帮我!!!
- 帮朋友女儿起名字,大家帮帮忙
- javascript中怎么获取页面当前焦点所指的控件,并获取其ID?谢谢了!
- 如何iframe取得页面表单中text的值?
- 求两个列表框之间传值的完整代码,其中一个可以上下调整顺序
- 关于DataSet,DataGrid的一些问题
- 麻烦大家再告诉我一下,就是window.close以后自动关闭的方法!!不用点确定。
- eval()执行的问题 标点符号的问题
- 为什么post提交的表单参数还是会显示在地址栏?
"cont":"insertSql=\"insert into fitdoa.tb_oa_log_check(logid) values('\"+logid+\"')\";"那么在后台则需要
"cont":"insertSql=\\\"insert into fitdoa.tb_oa_log_check(logid) values('\\\"+logid+\\\"')\\\";"反斜杠表示转义