日期:2014-05-16  浏览次数:20825 次

点击后无法立即更新,刷新后出现,跪求解决方法。。。
就是现在在做公共聊天室的一个模块,想要实现的效果是:单击左侧的在线列表,可以在下面的说话对象中出现,应用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" />&nbsp;&nbsp;';
        $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&amp;name="+name+'&amp;_dc='+new Date().getTime();


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