往库里增加一条新的数据(通过servlet)后,重定向到现实页面aa.jsp,不能显示刚才增加的那条纪录,增加第二条后,第一条才会出现,一次类推。表单用ajax
保存
function sae(){
if($F('yhm')=="" || $F('mm')=="" || $F('qr')=="" || $F('xm')==""){
alert("用户名、密码、确认密码、姓名都不能为空!");
$('yhm').focus();
}else if($F('mm')!=$F('qr')){
alert("两次输入密码不同!");
$('mm').focus();
}else{
var url='servlet/UserSave';
var cs='yhm='+$F('yhm')+"&mm="+$F('mm')+"&xm="+$F('xm')+"&qx="+$F('qx')+"&czlx="+$F('czlx')+"&id="+$F('id')+"&randnum="+Math.random();
var post = encodeURI(post);
post = encodeURI(post);
var myAjax=new Ajax.Request(
url,
{
method:'post',
parameters: cs,
onComplete: show
}
);
$('save').disabled=true;
$('add').disabled=false;
}
}
显示
function show(originalRequest){
Element.hide('syswork');
$('list').innerHTML = originalRequest.responseText;
$('yhm').value="";
$('mm').value="";
$('qr').value="";
$('xm').value="";
}
处理页面
str.openConnection();
if(czlx.equals("add")){
str.executeUpdate("insert into b_yh (yhm,mm,xm,qx)values('"+yhm+"','"+mm+"','"+xm+"','"+qx+"')");
}else if(czlx.equals("edit")){
str.executeUpdate("update b_yh set yhm='"+yhm+"',mm='"+mm+"',xm='"+xm+"',qx='"+qx+"' where id="+id);
}else if(czlx.equals("del")){
str.executeUpdate("delete from b_yh where id="+id);
}
request.getRequestDispatcher("../Users_list.jsp?tt="+now).forward(request,response); 把代码给大家贴出来,大家看看

解决方案 »

  1.   

    同意楼上,用alert多检查一下,不是什么大问题
      

  2.   

    很好检查
    1 数据库目前有几行数据? 比如10条
    2 重新启动服务器,进入列表页面,显示几行? 如果是10行,OK,继续测试,如果是9行.... 自己搞定循环
    3 增加一个数据,自动转向后显示几行? 还是10行,OK, 检查你的显示数据读取代码,他们是不是放在了insert的前面了?
    在显示循环前,重新从数据库读取数据4 关掉你的IE缓冲
      

  3.   

    以楼主目前贴出的代码来看没有什么问题,楼主仔细检查下没有贴出来的部分,单步跟踪下就可以了,这种bug很常见的.