【问题标题】:How to load a div and refresh mysql query如何加载 div 并刷新 mysql 查询
【发布时间】:2013-02-09 23:44:51
【问题描述】:

我搜索了档案并尝试了给出的示例,但仍然没有运气。我想要做的是重新加载一个 div 并查询“uid”变量。我需要使用辅助文件来执行此操作还是可以在同一页面上完成?非常感谢任何积极的帮助。

HTML:

<a id="cms-user-list1" href="#" onclick="clickToSlide(this.id, 'cms-user-orders-detail', '65');return false;">

Javascript:

function clickToSlide(er, cr, user_id)
{
    var pathtopage = 'blah.php';
    var a = parseInt($('#'+cr).css("left"));

    if (a ==50) {
        //SLIDE DIV LEFT AND LOAD UID
        $('#'+cr).animate({"left": "+=600px"}, "slow").load(pathtopage, {uid: user_id});

    } else {
        //SLIDE CURRENT DIV RIGHT, LOAD NEW UID AND SLIDE LEFT
        $('#'+cr).animate({"left": "-=600px"}, "slow"); 
        $('#'+cr).animate({"left": "+=600px"}, "slow").load(pathtopage, {uid: user_id});
    }       
}

更新 3/7

我无法找到问题的确切解决方案,所以我将数据发布到第二个 PHP 文件中,效果很好!现在我遇到了动画问题。我可以再用一双眼睛看看我哪里错了吗?

function populateDetails(er, div, url, user_id) {        

    var a = parseInt($('#'+div).css("left"), 10);

    // ajax request
    $.ajax({
        type  : 'POST',
         url  : url,
         data : "uid="+user_id,
         beforeSend : function() {
             $('#'+div).html('processing');
         },
         error : function() {
             alert("Something went wrong. Try again.");
         },
         // success callback
         success : function (response) {
            if (a ==50) {
                $('#'+div).animate({"left": "+=600px"}, "slow").html(response);
            } else {
                $('#'+div).animate({"left": "-=600px"}, "slow").html('', function() {
                   $('#'+div).html(response).animate({"left": "+=600px"}, "slow"); // im not certain if `this` will work here
                });
            }            
         },
         timeout : 3000,
    });
};

【问题讨论】:

  • 不要忘记你使用基数参数parseIntparseInt($('#'+cr).css("left"), 10);
  • 感谢您收听。

标签: javascript jquery ajax html load


【解决方案1】:

注意:我不太喜欢使用 jQuery,所以我的代码可能无法正常工作!

我不明白为什么你不能重复使用同一个文件(尽管你可能需要做一些事情来确保它不会在本地缓存它)

我认为您可能想要更改处理加载/重新加载 div 的方式。

以下(希望)将容器滑开,并开始(重新)加载内容,然后在加载完成后将容器滑回。 (希望链接顺序正确,不知道他们执行的方向!)

$('#'+cr).animate({"left": "-=600px"}, "slow").load(pathtopage, {"uid": user_id}, function() {
   $(this).animate({"left": "+=600px"}, "slow"); // im not certain if `this` will work here
});

您可以让animate() 完成回调触发.load() 以避免可能的内容闪烁。

更新

我认为您的问题是您的论点 erdivurluser_id 正在丢失(我不知道这是事实)。我添加了 context 参数,并将您的 $('#'+div) 更改为 $(this) 并重新订购了您的最后一个 .html() 东西,因为它没有回调,它的 .animate() 有。

function populateDetails(er, div, url, user_id) {        
     $.ajax({
        type: 'post',
        url: url,
        data: 'uid='+user_id;
        context: $('#'+div),
        beforeSend: function() {
            $(this).html('processing');
        },
        error: function() {
            alert("Something went wrong!");
        },
        success: function(response) {
            var a = parseInt($(this).css('left'), 10); 
            if (a == 50) {
                $(this).animate({'left': '+=600px'}, 'slow').html(response);
            } else {
                $(this).animate({'left': '-=600px'}, 'slow', function() {
                    $(this).html(response).animate({"left": "+=600px"}, "slow");
                }).html('');
            }   
        },
        timeout: 3000
     });
};

如果你能多描述一下“问题”会很有帮助:)

【讨论】:

  • 谢谢。 .animate 代码已经可以正常工作,但为了提高效率,我会尝试一下。我的问题是用新的 user_id 重新加载 div
  • 我无法找到我的问题的确切解决方案,所以我将数据发布到第二个 PHP 文件,效果很好!现在我遇到了动画问题。有人可以检查我哪里出错了吗? var a = parseInt($('#'+div).css("left"), 10); if (a ==50) { $('#'+div).animate({"left": "+=600px"}, "slow").html(response); } else { $('#'+div).animate({"left": "-=600px"}, "slow").html('', function() { $('#'+div).html(response).animate({"left": "+=600px"}, "slow"); }); }
  • 将此添加到您的问题底部会使其更易于阅读:) 并让可能不熟悉该问题的人了解整个故事
  • 抱歉,刚开始在这里发布问题。我没有看到我可以编辑。
猜你喜欢
  • 2013-03-17
  • 2012-05-20
  • 2013-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-17
  • 1970-01-01
相关资源
最近更新 更多