我正在尝试通过构建实时出价系统来学习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>
答案 0 :(得分:0)
我认为问题可能在于您的PHP文件正在生成HTML,由于它们是通过AJAX加载的,因此不断替换页面上的元素。
只是一个想法,但你可以改为包含数据库结果的PHP output a JSON,然后jQuery read the output。然后,您的代码将处理该JSON文件并相应地创建或更新HTML元素(而不是替换它们)。
这样,当您的下拉列表关闭时,您可以在JavaScript中获得更精细的控制。
See this answer如果你想从MySQLi输出到JSON。