点击后无法立即更新,刷新后出现,跪求解决方法。。。
就是现在在做公共聊天室的一个模块,想要实现的效果是:单击左侧的在线列表,可以在下面的说话对象中出现,应用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();
[解决办法]