找回密码
 新建账号

[JS] ajax乱码的解决,js获取ajax返回值并赋给变量

[复制链接]
php 发表于 2012/10/13 14:35 | 显示全部楼层 |阅读模式
ajax处理的字符含有中文等非英文字符时可能会出现乱码,这时候只要使用encodeURIComponent()函数处理一下即可.
要将ajax的返回值赋给变量,需要将异步方式改为同步.
试看以下代码:
<?php
if(isset($_GET['val'])){
        echo str_repeat($_GET['val'],10);
        exit;
}
?>
<script type="text/javascript">
function get_ajax_html(Url,Value,ID){
        var xmlHttp,html;
        Value = encodeURIComponent(Value);//解决ajax乱码问题
        if(window.ActiveXObject){
                xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
        }else if(window.XMLHttpRequest){
                xmlHttp = new XMLHttpRequest();
        }else{
                return '浏览器不支持ajax';
        }
        xmlHttp.open("GET",Url + Value,false);//这里false代表同步,true代表异步.
        xmlHttp.onreadystatechange=function(){
                html = xmlHttp.readyState == 4 ? xmlHttp.responseText : '请稍等...';
        };
        xmlHttp.send(null);
        return html;
}
function $(o){
        return document.getElementById(o);
}
function get_ajax_value(o,ID){
        var v=get_ajax_html('?val=',o.value,ID);
        $(ID).innerHTML=v;
}
</script>
<div id="show"></div>
<input onkeyup="get_ajax_value(this,'show')" />
-----------
如果不使用同步方式.那么ajax每次返回的值赋给变量v以后变量v都是undefined.

手机版|轻松E站

GMT+8, 2024/4/26 01:52

快速回复 返回顶部 返回列表