日期:2014-05-18  浏览次数:20656 次

我现在的项目ajax表单提交的一个问题(附原码50行)
JScript code
    

        var ajax = new Ajax.Request(      //提交
            url, 
            {
                method: 'post', 
                parameters: pars, 
                onComplete: btnSearch_onclickComplete
            });
        
        return false;
    }
    
    function btnSearch_onclickComplete(o) {     //提交完毕执行这个函数
        var rows = eval("(" + o.responseText + ")");     //取值

        deleteRows();
        
        if(rows == null) {
            alert("検索データがありません。");
            radYobiKbn_onclick(null);
        } else {
            _tableRows = rows;
            _currentCase = CASE3;
            
            for(var i = 0; i < rows.length; i++){    //响应结果可能是n条数据。
                rowAdd(rows[i]);    //rowAdd()是加数据的函数,问题来了            
            }
            
            tabIndex();
        }
        
        return false;
    }



我是用这种方法给页面附值的,
Element.update(td13,row["BUPPIN"]); //这里的row["BUPPIN"]就是上面rowAdd(rows[i])里的rows[i] 。
现在我的问题:
1。Element.update()这个是什么东西呢?
2。用这种方法有乱码的地方,比如44-44,叶面显示44?44,我想用下面的函数解决,怎么写呢? 谢谢!
JScript code
<%! String trans(String chi)
{
               String result = "";
               byte temp [];
               try
               {
                       temp=chi.getBytes("iso-8859-1");
                      result = new String(temp);
                }
                catch(UnsupportedEncodingException e)
                {
                        System.out.println (e.toString());
                }
            return result;
}
%>



------解决方案--------------------
这个东东偶遇到过,也是用ajax调用后台的东东,前台页面用的是utf-8编码,调ajax返回的是iso-8859这种系统默认编码的xml,而不是utf-8编码的,最后解决的方法就是让后台返回xml的时候,返回用utf-8编码的xml就可以了,因为当前页面会用utf-8,而你返回的是别的编码的数码,自然解析时就会有问题了

你自己可以用fiddler之类的监听你的页面html代码及http协议用的encoding及ajax的http协议及内容的编码
------解决方案--------------------
Element.update(element,newContent)
用newContent的内容替换element里面的内容,好像是这样吧.

乱码那个问题,不是很明白.
------解决方案--------------------
在你的servlet里面用上response.setCharacterEncoding("utf-8");
试试

------解决方案--------------------
在JavaScript端利用encodeURIComponent将字符编码为UTF-8,就是%2A之类的,在Java端用URLDecoder.decode("字符串", "UTF-8");
------解决方案--------------------
首先把页面代码改成utf-8
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">


然后把后面修改成这样试试。
temp=chi.getBytes("iso-8859-1");
result = new String(temp, "utf-8");