读书人

点击后无法立即更新刷新后出现跪求

发布时间: 2012-09-23 10:28:11 作者: rapoo

点击后无法立即更新,刷新后出现,跪求解决方法。。。
就是现在在做公共聊天室的一个模块,想要实现的效果是:单击左侧的在线列表,可以在下面的说话对象中出现,应用ajax实现:
Talk.php页的代码:(这是输出说话的对象,在id='obtobt'的div中输出。)

HTML code
 <div id="obtobt">                                <select id="obt" name="obt">                                <!-- 说话对象 -->                                <?php                                     foreach($_SESSION["per"] as $value){                                         echo '<option value="'.$value.'">'.$value.'</option>';                                                                              }                                 ?>                                </select>                           </div>

List.php中的代码:实现单击onclick效果:
PHP code
foreach($arr as $key => $value){        $tmparr = explode(',',$value);        $tmp .= '<img id="head'.$key.'" src="images/'.($tmparr[1]==1?'boy.gif':'girl.gif').'" border="0" width="25" height="26" />  ';        $tmp .= '<a onclick=changename("'.$tmparr[0].'")style="cursor:pointer;">'.$tmparr[0].'</a><br>';    }

Main.js中的代码:
JScript code
function changename(name){    url = "talk_chk.php?action=to&name="+name;    var select = document.getElementById('obtobt');    xmlhttp.open('GET',url,true);    xmlhttp.onreadystatechange = function(){        if(xmlhttp.readyState ==4){            var msg=xmlhttp.responseText;            select.innerHTML = msg;        }    }    xmlhttp.send(null);}

但是现在的效果是,单击时没有出现,但是刷新后在说话对象列表中就出现了!!
找了很长时间,没有找出是什么原因,求指点!!

[解决办法]
可能缓存了吧,加时间戳防止缓存
JScript code
    url = "talk_chk.php?action=to&name="+name+'&_dc='+new Date().getTime();
[解决办法]
探讨
可能缓存了吧,加时间戳防止缓存

JScript code
url = "talk_chk.php?action=to&name="+name+'&_dc='+new Date().getTime();


而且设置select的innerHTML在IE下没效果,而且你说的比较乱,ajax加载talk.php的内容还是什么?如果ajax动态加载talk.php的……

读书人网 >Ajax

热点推荐