ajax - 用于刷新div的javascript函数

时间:2011-10-25 06:26:44

标签: javascript ajax function refresh

我正在尝试使用ajax函数进行回调后进行div刷新。基本上,我希望在 #achievements_tab 中重新加载 /includes/view_game/achievements.inc.php 。回调(我没有在下面的代码中包含它)运行良好并触发下面找到的 AchievementRefresh 函数(div的不透明度变为0.5,但它仍然是这样的,并且没有进行刷新)。

这两个函数用于我网站上另一个类似的ajax刷新,效果很好。所以我试着修改代码,但由于目的略有不同,也许我的方法不对。

function AjaxPost(url, success_function) {
    xmlHttp = GetXmlHttpObject();
    if (xmlHttp == null) {
        alert("Your browser doesn't support AJAX. You should upgrade it!")
        return
    }
    xmlHttp.onreadystatechange = success_function;
    xmlHttp.open("POST", url, true);
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
}

AjaxPost 函数用于以下其他函数:

function AchievementRefresh() {
    div('achievements_tab').style.opacity = 0.5;
        div('highscore_pages').innerHTML = '<img src="'+site_url+'/images/loader.gif" />';

    AjaxPost(site_url+"/includes/view_game/achievements.inc.php?", '',
    function () {
        div('achievements_tab').innerHTML = xmlHttp.responseText;
        div('achievements_tab').style.opacity = 1;
    }
    )
}

2 个答案:

答案 0 :(得分:0)

使用load

$('#achievements_tab').load('/includes/view_game/achievements.inc.php');

请参阅:http://api.jquery.com/load/

修改 E.g。

function AchievementRefresh() {
    $('#achievements_tab').css('opacity', 0.5);
    $('#highscore_pages').html('<img src="'+site_url+'/images/loader.gif" />');

    $('#achievements_tab').load('/includes/view_game/achievements.inc.php')
        .success(function() {
            $('#achievements_tab').css('opacity', 1);
        });
}

答案 1 :(得分:0)

试试这个。

xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
     if(xmlhttp.status == 200) {
       div('achievements_tab').innerHTML = xmlHttp.responseText;
        div('achievements_tab').style.opacity = 1;
         }
  }
};`

名称和ID是示例。

此外,还有一些变化:

AjaxPost(site_url+"/includes/view_game/achievements.inc.php");
var params= 'name'+encodeURIComponent(name)+'&id='+encodeURIComponent(id)

参数不应该在URL中。

xmlhttp.send(params);