我有一个PHP + HTML + CSS应用程序,该应用程序具有主仪表板,其中包含多个行和列(称为小部件)。
小部件为DIV,并设置了唯一的ID和一些CSS类。喜欢:
<div class="col-2 colstav" id="5">Test 5 velikost 2</div>
<div class="col-6 colstav" id="32">Test 32 velikost 6</div>
<div class="col-4 colstav" id="7">Test 7 velikost 4</div>
在PHP变量中,在我需要重新加载DIV的文件(内容)之后,我已经为每个ID存储了时间(以毫秒为单位)。
在PHP中,我有:
$column[5]["file"] = widget5.php;
$column[5]["refresh"] = 4000;
$column[32]["file"] = widget32.php;
$column[32]["refresh"] = 2000;
$column[7]["file"] = widget7.php;
$column[7]["refresh"] = 1000;
我找不到通过PHP变量及时重新加载DIV内容的Javascript函数。
我找到了这个(http://jsfiddle.net/YVB9F/),但是我无法更新此JS代码:(。
规范/修改: 我需要这样的JS代码:
<script>
var time_div_5 = 4000;
var time_div_32 = 2000;
var time_div_7 = 1000;
function content(content_file,div_id){
load(content_file) to target(div_id)
}
every(time_div_5){do: content("wg/widget5.php","5")}
every(time_div_32){do: content("wg/widget32.php","32")}
every(time_div_7){do: content("wg/widget7.php","7")}
</script>
我知道如何将PHP中的变量添加到脚本中。
经过一番研究后,我有了此脚本,但无法正常工作:
<script>
function reload_div(file,iddiv){
$(iddiv).load(file);
}
setInterval(reload_div("widgets/widget1.php",1), 1000);
setInterval(reload_div("widgets/widget2.php",2), 4000);
</script>
<div id="1"></div>
<div id="2"></div>
非常感谢您的帮助。
答案 0 :(得分:1)
如评论中的denmch所述,您应该使用AJAX进行异步请求。您尝试实现的方法不是一个好习惯。
此外,我可以看到您正在尝试通过jQuery.load()
从文件中加载内容,但是您的id选择器似乎有误,reload_div("widgets/widget1.php",1)
将尝试查找与选择器$(1)
匹配的元素,并且可能失败。将#
字符附加到iddiv
函数内的reload_div
参数中。
答案 1 :(得分:1)
我将通过为每个小部件生成以下代码来解决此问题:
git rm --cached appsettings.json
在PHP中:
<script>setInterval(function() {$('#1').load('widgets/_blank.php');},5000)</script>
及其工作原理,但我认为,不是最有效,最简洁的方法:D。