+ -
当前位置:首页 → 问答吧 → 向高手讨教 急 在线等

向高手讨教 急 在线等

时间:2009-05-05

来源:互联网

function ajax()
    {
        var xmlhttp=createXMLHttp();
        this.url_str='';//php后台文件
        this.div_id='';//加载的图层id
        this.str='';//传送的数据
        this.cc=function()
            {
                xmlhttp.onreadystatechange=function ()
                    {
                        if(xmlhttp.readyState==4)
                            {
                                alert(this.str);//注意这边弹出 这边弹出undefine
                                document.getElementById(this.div_id).innerHTML=xmlhttp.responseText;
                                document.getElementById("newDrag").style.display="block";
                            }
                            
                            
                    }
                xmlhttp.open('POST',this.url_str,true);
                xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
                xmlhttp.send(this.str);
                                                                                     alert(this.str);//这里正常弹出
            }
    }

function character_ajax(user_id,type,mission_id)
    {
        var aa=new ajax();
        aa.url_str='character.php';
        aa.div_id="newBody";
        aa.str="user_id="+user_id+'&type='+type
        aa.cc(); //弹出的是undefine
    }
为什么弹出个undefine  要如何解决

作者: fudg1211   发布时间: 2009-05-05

前面的alert(this.str);实际上是alert(xmlhttp.str);,而xmlhttp当然没有str这个属性

你可以在ajax里加上
var self = this;
然后在xmlhttp.onreadystatechange里使用self.str

话说干嘛不用jQuery做ajax,一个函数就能搞定的事写那么多代码…

作者: keakon   发布时间: 2009-05-05

ls说的有理!!!

作者: seekarmor   发布时间: 2009-05-05

哎  我到现在都还没有仔细看jquery里的ajax
先谢谢了

作者: fudg1211   发布时间: 2009-05-06