刷新div内容而不关闭下拉列表

时间:2015-10-28 02:31:14

标签: php jquery

我正在尝试通过构建实时出价系统来学习php,mysql和javascript / jquery。我想自动刷新出价按钮和下拉列表的值,但前提是该值已更改。我做了一个bidbuttons.php,它在查询当前值的db之后输出按钮,然后我用其他地方找到的这个jquery加载并重新加载页面。我已经尝试了几种不同的刷新div的方法,不幸的是我想出了关闭计时器的下拉菜单。这个当前版本被描述为我需要的但似乎不起作用,事实上它让我退出。如果bidbuttons.php更新,则更喜欢div刷新和下拉关闭。这是我的第一篇文章,我希望我做得对。

var displayValue = function(el){
    return el.val();
}

var $x_button = $('.ex');
var $amt = $('.amountofoptions');

$x_button.click(function(){
    displayValue($amt);
});

和我的bidbuttons.php

<div id="bidbuttons"></div>

<script type="text/javascript">    
    var loadUrl = "includes/bidbuttons.php?id='.$item->id.'";  
    $("#bidbuttons").load(loadUrl).fadeIn("slow");
    var auto_refresh = setInterval(function () {
      $.get(loadUrl, function(data) {
        if (data.changed) {
          $("#bidbuttons").load(loadUrl).fadeIn("slow");
        }
      });
    }, 10000);
</script>

1 个答案:

答案 0 :(得分:0)

我认为问题可能在于您的PHP文件正在生成HTML,由于它们是通过AJAX加载的,因此不断替换页面上的元素。

只是一个想法,但你可以改为包含数据库结果的PHP output a JSON,然后jQuery read the output。然后,您的代码将处理该JSON文件并相应地创建或更新HTML元素(而不是替换它们)。

这样,当您的下拉列表关闭时,您可以在JavaScript中获得更精细的控制。

See this answer如果你想从MySQLi输出到JSON。