我有这个ajax_update脚本,每60秒更新一次file.php .. 现在file.php在更新表后输出:
<div id='message' style="display: none;">
<span>Hey, <b><? echo $userid; ?></b>, You've got +1 points, you now have <u>
<? echo $n["points"]; ?></u></span>
<a href="#" class="close-notify" onclick="closeNotice()">X</a>
</div>
<script>
$("#message").fadeIn("slow");
</script>
为什么这只适用于FF,我的意思是出现,但不是在IE ..
我想要做的是,在file.php更新了数据库中的一个字段(点数)之后,会在顶部出现类似stackoverflow的消息(就像你获得徽章时一样)说你有得到1分。
这在FF中完美无缺,但在IE中,消息根本没有显示?
也许另一种方法可以做到这一点?还是修复,解决方案?
我试着将小JS脚本放在index.php中并删除ajax更新的东西,它在IE中工作正常。
function addpoints() {
var userid = document.getElementById('user_id_points');
var postFile = 'addpoints.php?userid='+ userid.value;
$.post(postFile, function(data){
$("#message").fadeIn("slow");
$("#points").html(data);
setTimeout(addpoints, 62000);
});
}
function closeNotice() {
$("#message").fadeOut("slow");
}
我的ajax脚本^
<?php
include "tilslut.php";
$userid = $_GET["userid"];
$s = mysql_query("SELECT points, lastpoint FROM member_profile WHERE user_id = '".$userid."'");
$n = mysql_fetch_array($s);
$tid = time();
mysql_query("UPDATE member_profile set points = points+1, lastpoint=$tid WHERE lastpoint<=$tid-60 AND user_id = '".$userid."'");
if(isset($userid)) {
$e = mysql_query("SELECT points FROM member_profile WHERE user_id = '".$userid."'");
$f = mysql_fetch_array($e);
echo $n["points"];
}elseif (mysql_affected_rows() == 1) {
$s = mysql_query("SELECT points FROM member_profile WHERE user_id = '".$userid."'");
$n = mysql_fetch_array($s);
?>
If you receive this text, no problem with php
<div id="message" onclick="closeNotice()">this works
</div>
<?
}else{
?>
This doesnt work at all
<?
}
?>
我的PHP编码,用
答案 0 :(得分:2)
在您的ajax更新脚本中,请在结果出现后调用此方法:
$("#message").fadeIn("slow");
作为请求的一部分返回的脚本是不可靠的,在这种情况下,将ajax结果函数中的逻辑放在更好的方法中。
试试这个ajax电话:
function addpoints() {
var postFile = 'addpoints.php?userid='+ $('#user_id_points').val();
$.post(postFile, function(data){
$("#points").html(data).find("#message").fadeIn("slow")
setTimeout(addpoints, 62000);
});
}
答案 1 :(得分:0)
通过添加一个来解决这个问题 header('Content-type:text / html; charset = utf-8'); 在addpoints.php的顶部